Unity 动画性能和优化

1. 未设置控制器的 Animator 不会花时间执行处理。

2. 播放没有混合的单个动画剪辑会使 Unity 的速度比旧版动画系统更慢。当前系统布局已针对动画混合和更复杂设置进行优化。

3. 动画化缩放曲线比动画化移动和旋转曲线的成本更高。为了改善性能,请避免使用缩放动画。

4. 大多数时间,Unity 都在估算动画,并将动画层和动画状态机的开销保持在最低水平。向 Animator 添加另一层(无论同步与否)的成本取决于层播放的动画和混合树。层的权重为零时,Unity 会跳过层更新。

5. 人形动画类型与通用动画类型

  • 导入人形动画时,如果不需要 IK(反向动力学)目标或手指动画,请使用 Avatar 遮罩 将它们移除。
  • 使用通用类型时,使用根运动比不使用根运动的成本更高。如果动画没有使用根运动,请确保未指定根骨骼。

6. 场景级别优化

  • 使用哈希而不是字符串来查询 Animator。
  • 实现一个小的 AI 层来控制 Animator。您可以让它为 OnStateChange、OnTransitionBegin 和其他事件提供简单回调。
  • 使用状态标记可轻松地将 AI 状态机与 Unity 状态机匹配。
  • 使用其他曲线来模拟事件。
  • 使用其他曲线来标记动画;例如,与目标匹配一起使用。

7.  始终通过将 Animator 的 Culling Mode 设置为 Based on Renderers 来优化动画,并禁用蒙皮网格渲染器的 Update When Offscreen 属性。这样即可在角色不可见时让 Unity 不必更新动画。

 

你可能感兴趣的:(Unity,unity,游戏引擎)