动画模块性能
优质
小牛编辑
126浏览
2023-12-01
【动画模块性能】页面主要展示项目运行过程中动画模块的CPU占用情况,主要包括以下几个部分:
数据汇总
该项主要展示项目运行过程中的 “动画片段数量峰值”、“Animator.Update CPU均值”、“Animation.Update CPU均值” 和 “蒙皮网格更新CPU均值”。
注意: Animation.Update 对应的是Unity 3.x 动画系统,Animator.Update 对应的是Unity新动画系统Mecanim。
MeshSkinning.Update
该项主要展示项目运行过程中的蒙皮网格每帧更新的CPU占用情况。一般来说,该值的大小取决于蒙皮网格(Skinned Mesh)的面片数和骨骼数。您可以通过与图表交互,查看任一场景、任一时刻的具体CPU占用情况。同时,当您选中图表的某一帧时,页面上的场景图片会随之联动,将离该帧最为接近的项目截图显示给您,从而让您对性能开销的来源有更为直观的判断。
另外,建议您点开右边栏的 “分析和建议”,查看更为详细的性能分析。
Animation.Update 和 Animator.Update
Animation.Update 和 Animator.Update 分别表示Unity引擎两个不同动画模块的性能开销。您可以通过与图表交互,查看任一场景、任一时刻的具体CPU占用情况。同时,当您选中图表的某一帧时,页面上的场景图片会随之联动,将离该帧最为接近的项目截图显示给您,从而让您对性能开销的来源有更为直观的判断。
在我们做过的大量性能优化案例中,目前使用 Unity 3.x 动画系统的研发团队仍然不在少数。对此,我们建议尽可能使用Mecanim来作为项目的动画模块解决方案。Mecanim动画系统主要有以下几点优势:
- Mecanim动画系统的多线程计算性能较之3.x版本的单线程计算性能要高;
- Mecanim动画系统可以对GameObject开启 “Optimize Game Object” 选项。该选项为Unity引擎在4.3版本中加入的新功能,旨在优化Mecanim动画系统的底层计算开销。开启该选项,Animator.Update 和 MeshSkinning.Update 的CPU占用均存在一定程度的降低;
- Mecanim动画系统的Retargeting功能可以让多个不同的角色使用同一套的AnimationClip资源,比如主城中的NPC角色,其大部分共性动画可尝试使用一套Idle、Wave等动画片段,从而进一步降低动画资源的内存开销。
- Unity引擎已经不再对3.x版本动画系统进行维护。