CPU均值:物理引擎每帧的平均CPU耗时。对于Unity引擎而言,其4.X版本所使用的物理引擎为NVIDIA PhysX2.8,报告中统计的是Physics.Simulate的CPU耗时;其5.X版本所使用的物理引擎为NVIDIA PhysX3.3,报告中统计的是Physics.Simulate和Physics.Processing的CPU耗时总和。
推荐值:< 2ms; 主体范围:0~3ms;
Contacts数量峰值:项目运行过程中碰撞对(Contact Pair)数量的最大值。所谓“碰撞对”,是指当前空间中发生碰撞的物体之间的接触点,每个“碰撞对”均连接两个相互产生碰撞的物体。一般来说,Contacts数量越大,则表明碰撞物体的数量越多,即物理系统的CPU开销越大。推荐值:< 20
性能越卡时,物理模块会更加卡;比如:TimeStep默认是0.02秒,即物理模块的更新是20ms,
如果某一帧比较卡,到了100ms,其他的Update在100ms内只走了一次,而Physix.Update则被调用5次,100ms/20ms=5;游戏比较卡时,物理模块的耗时会非常高;
Contacts数量:碰撞对,即两个加有Rigidbody的Collider碰撞在一起会产生1个碰撞对;
(NGUI中加有Rigidbody和Collider的UI和底板放在同一深度时,Unity会认为这就是一个碰撞,从而形成碰撞对;
修复:在Physics的矩阵里面,把UI层自己和自己的碰撞勾选去掉即可)
Rigidbody数量:一般要小于50;数量太多,会造成开销,一般由Physics自己计算;
碰撞体数量:一般要小于100;若Contacts数量为0,碰撞体数量较大,说明有问题;
物理模块的耗时和Update没有太大关系;
如果Physics模块比较卡,且Contacts为0,可以改变物理模块的更新时间(比如:100毫秒更新一次变为200秒更新一次)
推荐文章链接:如何读懂UWA性能报告?—物理篇