Unity3D 官方移动游戏优化指南12.物理
Posted Kaitiren
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3D 官方移动游戏优化指南12.物理相关的知识,希望对你有一定的参考价值。
Unity 的内置物理系统 (Nvidia PhysX) 在移动设备上开销较大。下面的提示可以帮助您每秒减少更多帧。
优化设置
在 PlayerSettings 中,尽可能选中 Prebake Collision Meshes。
启用 Prebake Collision Meshes。
请务必同时编辑 Physics 设置 (Project Settings > Physics)。尽可能简化 Layer Collision Matrix。
禁用 Auto Sync Transforms 并启用 Reuse Collision Callbacks。
修改物理项目设置以进一步提高性能。
留意 Profiler 的 Physics 模块是否有性能问题。
简化碰撞体
网格碰撞体开销较大。用简单的原始碰撞体或网格碰撞体代替更复杂的网格碰撞体来近似原始形状。
使用原始或简化网格来表示碰撞体。
使用物理方法移动刚体
使用类方法(如 MovePosition 或 AddForce)来移动 Rigidbody 对象。直接转换其 Transform 组件可能导致重新计算物理世界,在复杂场景中,这样需要较大开销。
在 FixedUpdate 中而不是 Update 中移动物理体。
修改固定时间间隔
Project Settings 中的默认 Fixed Timestep 是 0.02 (50 Hz)。根据目标帧率对此进行更改(例如,对 30 fps 设置为 0.03)。
否则,如果帧率在运行时下降,也就是说 Unity 每帧都多次调用 FixedUpdate,可能会因物理内容过多而造成 CPU 性能问题。
Maximum Allowed Timestep 对帧率下降时物理计算和 FixedUpdate 事件可以使用的时间进行限制。降低该值意味着在性能顿挫过程中,物理系统和动画会缓慢下来,但也会减小其对帧率的影响。
将以减 Fixed Timestep 修改为与目标帧率相符,降低 Maximum Allowed Timestep 以减少性能毛刺。
通过 Physics Debugger 实现可视化
使用 Physics Debug 窗口 (Window > Analysis > Physics Debugger) 可帮助故障检查有问题的碰撞体或者出现差异的情况。下面是一个颜色编码的指示器,指示哪些游戏对象可以相互碰撞。
Physics Debugger 可帮助您可视化物理对象能够相互交互的方式。
有关更多信息,请参阅 Unity 文档中的物理调试可视化。
以上是关于Unity3D 官方移动游戏优化指南12.物理的主要内容,如果未能解决你的问题,请参考以下文章