您的位置:首页 > 移动开发 > Unity3D

Unity优化大全(三)之CPU-Physics

2015-08-28 00:01 141 查看
前言:

因为在整体学习的一些资料没来得及及时更新,现在来讲讲Physics的优化。

进入主题:

Physics优化有很多方面,这里先说说一些常在项目中出现的优化知识。

1.将物理模拟时间步设置到最小化状态。在我们的项目中不可以将让它低于16毫秒。

Fixed Timestep是和物理计算有关的。所以,若计算的频率太高,自然会影响到CPU的开销。同时,若计算频率达不到游戏设计时的要求,有会影响到功能的实现,所以如何抉择需要各位具体分析,选择一个合适的值。

2.减少角色控制器移动命令的调用。移动角色控制器会同步发生,每次调用都会耗损极大的性能。我们的做法是缓存每帧的移动请求,并且仅运用一次。

3.修改代码以免依赖“ControllerColliderHit” 回调函数。这证明这些回调函数处理得并不十分迅速。

4.面对性能更弱的设备,要用skinned mesh代替physics cloth。cloth参数在运行表现中发挥重要作用,如果你肯花些时间找到美学与运行表现之间的平衡点,就可以获得理想的结果。

5.在物理模拟过程中不要使用Ragdolls,只有在必要时才让它生效。

6.要谨慎评估触发器的“OnInside”回调函数,在我们的项目中,我们尽量在不依赖它们的情况下模拟逻辑。

7.使用层次而不是标签。我们可以轻松为对象分配层次和标签,并查询特定对象,但是涉及碰撞逻辑时,层次至少在运行表现上会更有明显优势。更快的物理计算和更少的无用分配内存是使用层次的基本原因。

8.不要使用网格碰撞器(Mesh Collider,因为它太耗性能了!

9.最小化碰撞检测请求(例如Ray Casts和Sphere Checks),尽量从每次检查中获得更多信息。

10.真实的物理(刚体)很消耗,不要轻易使用,尽量使用自己的代码模仿假的物理。

11.对于投射物不要使用真实物理的碰撞和刚体,用自己的代码处理。

。。。。。。。

最后的最后

很不完善,之后我会不断去完善,大家还有什么更好的建议可以在下面留言哦!谢谢大家
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: