
固定更新是 Unity 的事件函数按特定顺序触发的,但是 Update(更新) 和 Fixed Update(固定更新) 的频率不同,所以他们并不是异步的,固定更新总是在更新之前被首先调用。
那么固定更新的工作原理是什么呢?其实在帧开始时,Unity 计算 Delta Time,即当前帧与前一帧之间的时间量,并将该量添加到总时间值中,使其保持最新。
所以 Unity 将检查总固定时间是否落后于时间至少一个物理步长,一般情况下为 0.02 秒。

如果落后,则处理一个物理步骤,则调用固定更新并将固定增量时间,这里指的是物理步骤的长度,将其添加到 Fixed Time 总计中。
那么此时,如果 固定时间(Fixed Time) 仍然落后于 时间(Time),则将处理另一个物理步骤并依此类推,直到固定时间和时间在彼此的物理步骤内。
之后,固定更新阶段结束,Unity 将会继续进行更新、延迟更新,最后进行渲染以完成的帧。
因为在一帧期间需要进行多个固定更新,它们都将在更新之前被逐个被处理,所以在一帧中调用固定更新的确切次数取决于自上一帧以来的时间量和固定更新率。