码迷,mamicode.com
首页 > 编程语言 > 详细

GameUnity 2.0 文档(四) 网格+四叉树 最优碰撞检测

时间:2015-08-11 15:28:56      阅读:640      评论:0      收藏:0      [点我收藏+]

标签:

在写之前,必须对 前一篇文档补充一下。

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!