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

来源:互联网 发布:华为网络交换机价格 编辑:程序博客网 时间:2024/05/17 20:31

前言:

        因为在整体学习的一些资料没来得及及时更新,现在来讲讲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.对于投射物不要使用真实物理的碰撞和刚体,用自己的代码处理。

。。。。。。。

原创粉丝点击