游戏中少量碰撞的时候,还感觉不出来差异,当大量碰撞物体相互碰撞的时候,就容易出现严重占用CPU的情况。但位移旋转都是通过代码控制,同类型的物体碰撞本可以避免。

  经过profiler分析,发现是触发trigger/碰撞collision多次调用导致的CPU占用。原本我是使用if判断相同类型,就马上return返回的方法,结果还是会调用碰撞函数。

  换句话说,我们不需要检测同类型物体的碰撞,甚至不需要调用trigger/collision函数。还好U3D为我们提供了这个功能。详情如下图所示:

 

 

 

 

 

   layer collision matrix的作用在于判断对其进行合理的勾选,能够很大程度上优化此类问题。

posted on 2019-12-23 16:54  MisterYang  阅读(853)  评论(0编辑  收藏  举报