Update
和FixedUpdate
方法有什么区别,何时应该使用这些方法?
来自论坛:
更新每帧运行一次.FixedUpdate可以每帧运行一次,零次或几次,具体取决于在时间设置中每秒设置的物理帧数,以及帧速率的速度/速度.
另请参阅鸭子在同一论坛中给出的答案,以详细解释两者之间的区别.
因此,在应用力,扭矩或其他物理相关函数时应使用FixedUpdate - 因为您知道它将与物理引擎本身完全同步执行.
而Update()与物理引擎的步调可能会更快或更慢,这取决于图形在任何给定时间放在渲染引擎上的负载量,如果用于物理,则会给出相应的变量物理效应!
FixedUpdate用于与物理引擎同步,因此任何需要应用于刚体的东西都应该在FixedUpdate中发生. 另一方面,更新独立于物理引擎.如果用户的帧速率下降但是你需要一定的计算来继续执行,这可能是有益的,就像你正在更新聊天或voip客户端一样,你需要定期的旧更新.
Unity在这里有一个关于Update vs. FixedUpdate的精彩视频:Unity - Update vs. FixedUpdate
该网站是初学游戏程序员的绝佳资源.
除其他答案外,更新是按帧速率而不是物理计算速率及时进行的。这意味着通常当某些东西改变视觉效果时,您希望在Update(而不是FixedUpdate)中完成。这样可以确保在渲染帧的那一刻始终保持及时。我遇到过很多情况,因为我在FixedUpdate中进行了计算,所以运动看起来不太流畅。
在FixedUpdate中应执行的在Update中执行的操作的唯一潜在成本是物理保真度可能会下降,尤其是当您达到较低的帧速率时(但通常这是一个单独的问题,应该解决,因此通常不应该解决)将其放入FixedUpdate而不是Update的一个很好的理由)。
如果您想控制不同脚本执行更新的顺序,那么FixedUpdate是错误的树状结构。您应该查看的是EarlyUpdate之类的内容。