本页面提供一些提示来帮助您在 Unity 中获得最佳性能,内容涵盖动画系统和运行时优化。
注意:有关在 3d 应用程序中为角色建模以便在 Unity 中获得最佳性能的技巧,请参阅角色建模的性能优化。
播放没有混合的单个动画剪辑会使 Unity 的速度比旧版动画系统更慢。旧系统非常直接,对曲线采样并直接写入变换中。Unity 的当前动画系统具有用于混合的临时缓冲区,并会对采样曲线和其他数据进行额外复制。当前系统布局已针对动画混合和更复杂设置进行优化。
动画化缩放曲线比动画化移动和旋转曲线的成本更高。为了改善性能,请避免使用缩放动画。
Note: This does not apply to constant curves (curves that have the same value for the length of the animation clip). Constant curves are optimized, and are less expensive than normal curves. Constant curves that have the same values as the default scene values do not write to the scene every frame.
大多数时间,Unity 都在估算动画,并将动画层和动画状态机的开销保持在最低水平。向 Animator 添加另一层(无论同步与否)的成本取决于层播放的动画和混合树。层的权重为零时,Unity 会跳过层更新。
以下提示可帮助您选择具体类型:
可进行许多优化,一些有用的提示如下:
始终通过将 Animator 的 Culling Mode 设置为 Based on Renderers 来优化动画,并禁用蒙皮网格渲染器的 Update When Offscreen 属性。这样即可在角色不可见时让 Unity 不必更新动画。