首页 > 其他分享 >【Unity3D 官方移动游戏优化指南】12.物理

【Unity3D 官方移动游戏优化指南】12.物理

时间:2022-12-27 10:33:11浏览次数:65  
标签:Unity3D 12 Timestep 碰撞 网格 Collision 移动游戏 Physics 物理


Unity 的内置物理系统 (Nvidia PhysX) 在移动设备上开销较大。下面的提示可以帮助您每秒减少更多帧。

优化设置

在 PlayerSettings 中,尽可能选中 Prebake Collision Meshes。

【Unity3D 官方移动游戏优化指南】12.物理_物理系统

启用 Prebake Collision Meshes。

请务必同时编辑 Physics 设置 (Project Settings > Physics)。尽可能简化 Layer Collision Matrix。

禁用 Auto Sync Transforms 并启用 Reuse Collision Callbacks。

【Unity3D 官方移动游戏优化指南】12.物理_帧率_02

修改物理项目设置以进一步提高性能。

【Unity3D 官方移动游戏优化指南】12.物理_游戏引擎_03

留意 Profiler 的 Physics 模块是否有性能问题。

简化碰撞体

网格碰撞体开销较大。用简单的原始碰撞体或网格碰撞体代替更复杂的网格碰撞体来近似原始形状。

【Unity3D 官方移动游戏优化指南】12.物理_类方法_04

使用原始或简化网格来表示碰撞体。

使用物理方法移动刚体

使用类方法(如 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 事件可以使用的时间进行限制。降低该值意味着在性能顿挫过程中,物理系统和动画会缓慢下来,但也会减小其对帧率的影响。

【Unity3D 官方移动游戏优化指南】12.物理_游戏引擎_05

将以减 Fixed Timestep 修改为与目标帧率相符,降低 Maximum Allowed Timestep 以减少性能毛刺。

通过 Physics Debugger 实现可视化

使用 Physics Debug 窗口 (Window > Analysis > Physics Debugger) 可帮助故障检查有问题的碰撞体或者出现差异的情况。下面是一个颜色编码的指示器,指示哪些游戏对象可以相互碰撞。

【Unity3D 官方移动游戏优化指南】12.物理_unity_06

Physics Debugger 可帮助您可视化物理对象能够相互交互的方式。

有关更多信息,请参阅 Unity 文档中的​​物理调试可视化​​。


标签:Unity3D,12,Timestep,碰撞,网格,Collision,移动游戏,Physics,物理
From: https://blog.51cto.com/u_15923385/5971514

相关文章