Version: 6000.3
语言: 中文
设置固定时间步长以优化物理模拟频率
优化纯查询或非模拟游戏的物理

手动设置物理模拟

手动控制物理模拟以决定何时进行物理计算,以使物理更新与应用程序的实际性能保持一致,并避免冗余更新。这有助于优化繁忙帧期间的性能,并且对于需要与游戏逻辑或自定义物理更新循环紧密同步的场景非常有用。

手动控制物理模拟以:

  • 确保稳定性和一致性:物理系统专为小而一致的时间步长而设计。可变时间步长值,例如Time.deltaTime,可能会导致模拟不稳定,并导致诸如物体相互穿过等问题,这种现象称为隧道效应,在低帧速率下或帧速率波动时出现抖动行为。
  • 创建可重复的行为:使用固定步骤对于更可重复的物理行为至关重要(尽管 PhysX 的真正确定性还有其他挑战)。
  • 避免大而不准确的步骤:如果帧速率下降,Time.deltaTime增加。模拟具有较大可变增量的物理步骤可能会占用大量计算资源且精度较低,从而可能使性能问题恶化。

Physics.Simulate(float stepTime)(或yourPhysicsScene.Simulate(float stepTime))手动控制物理仿真,具体地控制局部PhysicsScene实例。请参阅多场景物理学习教程,了解有关多场景物理的更多信息。

当您调用Physics.Simulate,建议的最佳实践是使用固定的时间步长,而不是直接传递Time.deltaTime.例如,使用您可能在项目设置(Project Settings) 广泛的设置集合,允许您配置物理、音频、网络、图形、输入和项目的许多其他区域的行为方式。更多信息
请参阅术语表
固定时间步长一个可自定义的与帧速率无关的间隔,用于指示何时执行物理计算和 FixedUpdate() 事件。更多信息
请参阅术语表
值,例如 0.02 表示 50Hz。

如果您在场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表
Physics.Simulate(),请确保禁用自动模拟。你可以通过将 模拟模式(Simulation Mode) 设置为 脚本(Script) 来做到这一点。进入脚本模式(通过项目设置或脚本)后,你必须调用Physics.Simulate以选定频率使用适当的(最好是固定的时间步长)的场景。

要禁用自动模拟,请在编辑器中:

  1. 选择 编辑(Edit) > 项目设置(Project Settings) 以打开 项目设置(Project Settings) 窗口。
  2. 选择 物理>设置(Physics Settings) 选项卡。
  3. 选择游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
    请参阅术语表
    标签。
  4. 模拟模式(Simulation Mode) 设置为 脚本(Script)。

要禁用自动模拟,请在脚本中将Physics.simulationMode = SimulationMode.Script;.通常,你在游戏开始时执行此作,然后再进行任何物理模拟。

其他资源

设置固定时间步长以优化物理模拟频率
优化纯查询或非模拟游戏的物理