Unity 的物理效果是领先于渲染还是落后?



根据我对这张图的理解,Update()每个游戏周期严格调用一次,而当 Unity 想做物理时,FixedUpdate()被调用 0 到多次。是真的吗?

我不确定的是,物理步骤通常落后于当前时间,还是领先于当前时间?换句话说,Unity 是如何做出物理或不做物理的决定,比如while (currentTime - previousPhysicsUpdateTime >= fixedDeltaTime)还是像while (currentTime > previousPhysicsUpdateTime)

还是以上两者都不是?

有点像对立面。物理在固定时间的基础上定期进行。这意味着FixedUpdate是在固定时间的基础上调用的。这是更新,可以根据游戏的 fps 而有所不同(60 fps,更新每秒调用 60 次(。

现在,我们通常从Update的角度来做事。这意味着如果您的 fps 很高,也许您可以在FixedUpdate发生之前进行两次Update通话。同样,如果你 fps 下降,你的Updates更少,但FixedUpdate量仍然相同,所以你会有几个FixedUpdated在两个Updates之间。

例如,假设 FixedUpdate 每秒发生 50 次(这是 Unity 中的默认设置(。如果您的游戏以 60 fps 的速度运行,这意味着大多数时候您将有一个固定更新和一个更新调用。偶尔会有两个更新(因为更新更频繁一些(。如果您达到 100 fps,可以肯定的是,在FixedUpdate之前,您将始终至少有两个Update通话。

我建议您查看FixedUpdate Doc,如果这还不够清楚

最新更新