C# Unity 3d,Universe.PhysicTimeStep是什么?

C# Unity 3d,Universe.PhysicTimeStep是什么?,c#,unity3d,time,C#,Unity3d,Time,我试图复制,我有一个问题: 什么是“宇宙物理时间步”?我搜索了unity手册和脚本API,但没有找到任何东西。有人能给我解释一下吗?感谢历史上,当游戏模拟物理时,他们通过每帧更新一次物理模拟来实现。例如,要查找行驶的距离,他们将使用velocity*timeStep,其中timeStep是帧之间的时间 如今,尤其是在多线程游戏引擎中,物理模拟运行(在某种程度上)独立于其他模拟和渲染。例如,渲染可以以每秒60帧的速度完成,但物理仅每隔一帧(即30 FPS)更新一次。物理模拟更新的频率越高(即时间

我试图复制,我有一个问题:


什么是“宇宙物理时间步”?我搜索了unity手册和脚本API,但没有找到任何东西。有人能给我解释一下吗?感谢

历史上,当游戏模拟物理时,他们通过每帧更新一次物理模拟来实现。例如,要查找行驶的距离,他们将使用velocity*timeStep,其中timeStep是帧之间的时间

如今,尤其是在多线程游戏引擎中,物理模拟运行(在某种程度上)独立于其他模拟和渲染。例如,渲染可以以每秒60帧的速度完成,但物理仅每隔一帧(即30 FPS)更新一次。物理模拟更新的频率越高(即时间步长越低),物理模拟就越精确

有时,各种系统的时间步长会被调整,这样即使硬件是一个限制因素,游戏也能“正常”运行。通常,这是通过“删除”(即跳过)渲染帧来完成的,但也可以删除更新帧。有些游戏,尤其是平台游戏和其他物理非常重要的游戏,总是以相同的时间步长运行物理模拟,这样在较慢的CPU上运行物理模拟(这将导致更高的时间步长)不会影响游戏性,例如使难度跳跃更容易


在您的例子中,Universe.physicTimeStep似乎是游戏中用于更新的时间步长。它似乎也是一个固定的时间步长,因此它将始终保持不变。如果游戏运行缓慢,它会删除渲染帧,但会不断更新物理。

这是类宇宙中的一个公共常量(你应该看看Sebastian Lague的太阳系Github存储库)。
这里已经清楚地提到了

这不是内置的Unity,而是教程制作者在某处实现的东西。。。