- 博客(51)
- 资源 (1)
- 收藏
- 关注
原创 带撤销的无限状态机-lua篇
核心就一个FSM(状态机),一个FSMState(状态)。每个状态可以有一个父状态和无限个子状态。具体实现可以参考下面代码将附件的后缀该为.zip后,解压可获得到源码require(“FSM”)require(“FSMState”)local fsm = FSM:New(“fsmName”)local idleState = FSMState:New(“idle”)local mo...
2018-11-07 11:25:33 1178
原创 线与线相交、线与矩形相交判断
/// /// 只要线与矩形有一条线有相交,则线与矩形相交/// public class LineWithRect : MonoBehaviour{public Rect rect = new Rect(0, 0, 100, 100);public Transform LineStart;public Transform lineEnd;Vector3 VecLineStart;...
2018-11-02 17:57:17 7259
原创 权重随机算法
一个Test类的Start方法,用于测试实例化一个 RandomControllerEx ,传入数据与数据对应的权重值。GetDatas方法可以获取到当前这一次随机的值。思路就是将权重值乘一个1到100的随机数,然后将随机后的权重值排序。[code]csharpcode:using System.Collections;using System.Collections.Generic;...
2018-10-30 17:38:37 5768
原创 抛物线子弹
抛物线子弹想实现愤怒小鸟的抛物线,在网上找了一番,没有找到。 自己实现了下。实现了两种抛物线的算法:1.通过sin函数,需知道目标点。2. 通过匀加速和自由落体,模拟了抛物线子弹的效果。如有更好的计算方式,请留言。 互相分享,共同进步。// 需知道目标点public class TestBullet : MonoBehaviour{public float value;pu...
2018-10-23 11:54:10 1825
原创 socket通信实例
闲来无事,研究了下socket~ 文章最后会给出实例链接,如果不想看介绍的可以直接下下来运行。 本人小白一枚,如有错误请看者不奢赐教。客户端为unity,服务端为vs,都是用c#语言编写。先说下我对socket的理解,建立连接、通信、释放连接。此为socket通信的三次握手。对于socket通信,c#底层已经为我们封装好了,我们可以选择使用UDP还是TCP,这里我使用的是TCP连接。先介绍下
2017-09-07 15:07:10 593
原创 代码计算抛物线
public class GTool{ // 计算抛物线 static public Vector3 getPoint(Vector3 start,Vector3 end,float t, float hight){ Vector3 value = Vector3.Lerp (start, end,t); // x z 轴上的线性位移 v
2017-05-23 09:19:59 3711
原创 实现六边形网格
打开1场景,运行就可以看到效果。 所有的六边行都都是通过顶点数绘制到Mesh上的。只用了一个网格,一个材质。点击地图上的某个六边形时,将这个六边形的颜色设置为红色,之后再重写根据所有六边行的顶点数和颜色绘制Mesh网格。代码比较简单,三个文件 SixangleDatas :提供六边形行列的数据 Sixangle :传入六边形坐标,外半径,状态。 vertices 存储六边形的顶点数,colo
2017-05-16 23:09:46 6704
原创 继承EditorWindow实现画布
先介绍下主要的几个文件: CanvasBaseData -> 最基本的数据文件,是个Scriptable资源。每个画布都要有一个自己的数据。 CanvasEditor -> 最基本的画布绘制代码,继承 EditorWindow。 NodeStyles -> 一些常用的 GUIStyle zNode -> 画布中的基本节点,继承 zBaseNode zNodeTransitionLine -
2017-05-14 22:26:35 809
原创 c# 反射使用及详解
获取成员变量的方式有两种typeof(T).GetPropertys(BindingFlags 参数) // 这中方式获取的成员变量一定要是实现了 get set 存储器的变量typeof(T).GetFields(BindingFlags 参数) // 这种方式获取的成员变量不能实现 get set 。 否则获取不到成员变量。 命名空间备注 :BindingFlags 在 System.Refl
2017-03-26 21:28:10 803
原创 计算当前场景顶点数和面数
/// /// 得到场景中所有的GameObject /// void GetAllObjects() { verts = 0; tris = 0; GameObject[] allGameObject = FindObjectsOfType(); for (int i = 0; i < all
2017-03-01 16:34:46 3801
原创 代码GC测试
for(int i = 0;i < 10000;i++){ enActorEnum enu = (enActorEnum)1; }枚举类型转换 GC 0 Time 0.1public delegate void VoidDelegateString (string str);------------------------------ 分割线 【委托】 ---------------
2017-03-01 10:28:56 1204
原创 使用 PropertyAttribute和PropertyDrawer
项目地址: http://pan.baidu.com/s/1nv6mjB7 密码:grmi
2016-12-07 17:45:45 578
原创 unity项目接入 SDK 模版
项目开发完了都要接入各种 sdk ,unity调用java? java调用unity? 每次需求改了就要重现将项目导出成eclipse项目重新接一遍sdk? 这太麻烦了,费时,对自己编程之路又没有什么帮助。 so, 我今天与大家分享一个 sdk工具,所有要接的sdk只需在eclipse上接入一次导入unity后,除了sdk更新,完全不需要接入第二次。如果不懂的unity和java的通信可以我
2016-12-03 19:37:58 2405 1
原创 unity 安卓平台上设置头像
需求是这样的,安卓用户在设置头像时,可以从相册选择或者是拍张图片,然后通过圆形或者是矩形裁剪后,将裁减后的图片当作头像。思路是这样的,1.在unity上通过jni调用java代码。2.然后通过Intent去打开安卓手机的摄像机或是相册,选择一张图片后,接着进行圆形或是矩形裁剪。3.然后将裁剪后的图片保存到指定的一个路径下,接着调用Unity的方法,并将图片路径传过去。4.这时在unity上就
2016-11-20 16:43:43 2286 1
原创 unity调用eclipse导出的jar插件
1.首先要明白unity与java之间的通信 unity调用java// 直接调用java的静态方法, 我比较喜欢这种,简单明了AndroidJavaClass klass = new AndroidJavaClass("com.unity.player.UnityInvokeAndroid");// 这是包名加你要调的类名klass.CallStatic ("java方法名", "参
2016-11-15 11:37:13 4664 2
原创 求两点之间连线的角度
function getAngle(px1, py1, px2, py2) { //两点的x、y值 x = px2-px1; y = py2-py1; hypotenuse = Math.sqrt(Math.pow(x, 2)+Math.pow(y, 2)); //斜边长度 cos = x/h
2016-11-08 07:52:25 9101
原创 判断两个向量是否平行
/// /// 判断两个向量是否平行 /// Lhs. /// Rhs. /// true:平行 false:不平行 /// public static bool IsParallel(Vector3 lhs, Vector3 rhs) { float value = Vector3.Dot(lhs.normalized,rhs.normalized); i
2016-11-08 07:42:31 12849 3
原创 判断两个向量是否垂直
/// /// 判断两个向量是否垂直 /// /// true :垂直 false:不垂直. /// Lhs. /// Rhs. public static bool IsVertical(Vector3 lhs, Vector3 rhs) { float value = Vector3.Dot(lhs.normalized,rhs.normalized);
2016-11-08 07:41:02 9768
原创 计算点到直线的距离
/// <summary>/// 点到直线的距离/// </summary>/// <returns>The of point to vector.</returns>/// <param name="startPoint">Start point.</param>/// <param name="endPoint">End point.</param>/// <param name="
2016-11-08 07:39:30 3062
原创 解决 android manager 无法更新问题
先看看如何加快更新速度,再说如何更新。 首先更新host文件,如图,打开目录 C:\Windows\System32\drivers\etc,在目录下有hosts文件 打开方式选用“记事本”打开 将一下的文字复制到hosts文件里面,保存,注意不修改原来的文件内容,只是附加这些内容 203.208.46.146 www.google.com 74.125.113.121 developer
2016-08-18 09:45:41 1013
原创 lua 语法
三元表达式: lua : a = 1 b = (a == 1) and "one" or "not one" c# : bool a = 1; string b = a == 1 ? "one" : "not one";while循环 lua : a = 1 while a~= 5 do -- Lua uses ~= to me
2016-07-25 13:39:10 518
原创 unity 扩展编辑器 文件操作时常用的类与方法
Selection 获取到当前鼠标点中的物体 (详细API看unity圣典)AssetDatabase 资源数据库 (对资源进行读写和各种操作的接口) (1) AssetDatabase.Refresh(); // 重新导入有更新的资源 (2) AssetDatabase.GetAssetPath(gameObject); // 返回该对象在工程资源位置的路径 (3) Ass
2016-07-25 10:24:46 1795
原创 unity Vector3
MoveTowards(currentPos, targetPos, time); 在指定时间移动到目标点SmoothDamp(currentPos, targetPos, smoothSpeed, time); 在指定时间移动到目标点 (带平滑效果)Lerp(currentPos, targetPos, time); 每帧移动多少,返回移动后的坐标 Distance(currentPos,
2016-07-15 16:17:41 615
原创 unity 控制旋转的方法
将角度转换成四元数,然后修改transform的rotation。 Quaternion q = Quaternion.AngleAxis(angle, axis); // 1.角度 2.旋转的轴 transform.rotation = Quaternion.slerp(transform.rotation, q, Time.deltaTime * speed);最简单的旋转 tra
2016-07-12 14:08:11 5757
原创 unity 接入移动MM (3.1.10)
搞了四天,终于把移动mm接上了~ 心里又爽快了一把。趁现在赶紧写篇文章记录下流程。网上关于unity接入移动mm的文章很多,接入方式大致有两种: 一、新建一个Android项目,在项目中接入移动mm的SDK,能正常运行后,用eclipse将项目导出成jar包,以插件的方式导入unity中,在unity中调用Android对应的代码,然后用unity导出安卓包。 你可能觉得导出安卓包就成功了,
2016-07-07 11:08:18 1617 1
原创 unity 2d 与3d坐标互相转换
// 根据3d的主角坐标,获得主角血条的坐标 (通过视窗坐标转换) Vector3 pos = cam.WorldToViewportPoint(Boy.position); // 将主角的3d坐标转换成对象屏幕的视窗坐标 UI.transform.position = UIcam.ViewportToWorldPoint(pos); // 根据视窗坐标获得UI血条在3d的位置// 根据3d的主角
2016-07-01 14:15:43 10514
原创 cocos2dx ipv6处理
2016年6月1日,苹果出台新政策,要求所有提交Apple Store渠道的包必须要支持IPv6。这昂无疑让很多人心头一凉。 果然在这几天很多公司的产品都被打回来了。我们公司也不例外,提交了几个包,只有一款侥幸逃过一劫,其它全部被打回。 碰到这种问题,第一时间就去调查了下,首先肯定是去构建一个ipv6网络测试。面临着一大堆的问题,这个是客户端还是服务端的问题?如果是服务端的问题,怎么处理,服
2016-06-22 19:39:25 5343 1
原创 unity 定义回调函数
public delegate void Action(); // 返回值为空, 参数为空的回调函数public delegate void Action<T>(T arg); // 返回值为空, 参数为一个任意类型的回调函数public delegate void Action<T1,T2>(T1 arg1,T2 arg2); // 返回值为空, 参数为两个任意类型的回调函数public dele
2016-05-22 16:08:24 3118
原创 unity 刚体
使用kinematic 能够使添加了刚体的物体更自然的移动,但是该物体就不能再触发OnTrigger这一类的方法了。勾选碰撞器的Is Trigger后,物体将不会触发OnCollision这一类的方法,只能触发OnTrigger一类的方法。且物体将会失去物理效果(能直接穿过墙)即勾了kinematic , 又勾了 IsTrigger,不能触发OnCollision一类的方法,只能触发OnTrigge
2016-05-16 09:58:18 748
原创 unity 刚体的旋转
// 注视着某个点旋转,返回旋转后的四元数Quaternion rotate = Quaternion.LookRotation(Data.TargetPos.position - transform.position); // 刚体朝着这个四元数,随着时间与平滑度旋转rb.rotation = Quaternion.Slerp(transform.rotation, rotate, Time
2016-05-15 16:42:50 3344
原创 unity 计算两点角度
Vector3 targetDir = targetPos.position - transform.position; // 目标坐标与当前坐标差的向量Vector3.Angle(transform.forward,targetDir) // 返回当前坐标与目标坐标的角度
2016-05-14 12:03:56 25805 1
原创 unity 计算两点的距离
float distance = (transform.position, targetPos.position).magnitude
2016-05-14 11:57:42 19968 2
原创 unity 控制移动的方法
一。 transform.Translate(new Vector3(1, 1, 1) * moveSpeed * Time.deltaTime); // Translate方法移动不会考虑刚体等碰撞(会直接穿过物体)二。 // 使用刚体移动物体(移动会受到物理引擎的影响) rb.MovePosition(rb.transform.position + new Vector3
2016-05-07 11:05:25 4558
原创 jni的使用
首先说下,jni只有在安卓平台下才会用到,所以在包含头文件时要加个条件编译#if(CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)#include "platform/android/jni/JniHelper.h"#endif接着通过一小段代码来说明一下这个类的用法。#if(CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
2016-04-21 17:12:44 667
原创 cocos2dx 调用java 代码
看链接~ http://blog.csdn.net/ku726999/article/details/38553889
2016-04-19 16:16:41 708
原创 cocos2d-x 3.10 热更新 使用AssetsManagerEx
热更新的思路:玩家一启动游戏时,将客户端资源的版本与服务器进行比对,如果客户端版本低于服务端版本,则下载最新的资源,并将客户端的资源版本更新至服务端的版本。由于我们没有对打包出来的APK中的资源有写的权限,所以我们需要将下载下来的资源放在一个可以读写的路径中,并添加这个路径至搜索路径,且优先级要高于默认的搜索路径。在3.10 官方例子中,cocos使用了AssetsManagerEx 来代替原先的A
2016-04-12 10:09:06 15088 1
原创 cocos2d 在ios上设置横竖屏
参考一下文章 http://www.tuicool.com/articles/ieeYnq原文 ##http://blog.csdn.net/u010229677/article/details/38614221
2016-04-06 16:30:54 1891
原创 armv7 armv7s arm64 armv6 描述
参考下文 http://blog.csdn.net/oskytonight/article/details/22319853
2016-04-06 14:12:28 603
抛物线子弹 效果实现
2018-10-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人