标签:
在写之前,必须对 前一篇文档补充一下。
Camera2DAngle类是 摄像机旋转 2d人物360度,PlayerMove是人物移动。
这两个类 都可以 360 ° 场景旋转人物也跟着旋转。
但不能同时用。 前者更倾向于 不移动的 人物。后者倾向于 移动的人物。 但精度 前者 高于 后者。具体根据项目需求 选择。
今天 介绍的类 CollisionDetection 碰撞检测类
public GameObject GridPrefab;//网格块材料 public int RangeLength;//网格块范围 public bool showGrid;//是否显示
第一个参数,是网格的图形,你可以用 任何模型 作为一个网格的形状。当然这不是必须要显示的
第二个参数,取值为0--max,当0的时候,就是九宫格,1的时候是 25宫格,2的时候49宫格,3的时候81宫格,规律是 (2n+1)(2n+1);
第三个参数,是否显示,如果不选,则第一个参数 不需要填写。
下面我们来看看效果
说明下,添加位置和disk相同。我用cube作为网格形状,我选择的范围是0和1,也就是9和25宫格,我让他显示,当然,最好建议不要选择显示,这样会影响效率。
这张是我旋转之后的图,看的出人物方向还是面对面过来的。
有人问,为何范围一定要 9,25,49,81这类的。其实 大家仔细想下就知道,我要让 人物 永远保证在中心点,那么 奇数 *奇数才能确保这样。
网格计算是协程方式,测试在2000左右手机下,同屏显示 300人 走动碰撞检测保证在35帧以上。低端手机 也能满足同屏 100+人 不卡。
下一篇,AI。
GameUnity 2.0 文档(四) 网格+四叉树 最优碰撞检测
标签:
原文地址:http://www.cnblogs.com/big-zhou/p/4720807.html