大家都知道 void Update() 是每一帧运行一次的。
而 FixedUpdate 其实可以每帧运行‘一次’、‘零次’或‘多次’,具体取决于时间设置中设置的每秒物理帧数以及帧速率的快/慢。
所以:
出于这个原因,在施加力、扭矩或其他与物理相关的函数时应该使用 FixedUpdate - 因为您知道它将与物理引擎本身完全同步地执行。
而 Update() 可能与物理引擎不同步,更快或更慢,这取决于图形在任何给定时间对渲染引擎施加的负载量,如果用于物理,则会给出相应的变体物理效果!
Update()
- 调用每一帧
- 用于定期更新,例如:
- 移动非物理对象
- 简单的计时器
- 接收输入(又名按键等)
- 更新间隔调用时间会有所不同,即间隔不均匀
FixedUpdate()
- 调用每个物理步骤
FixedUpdate()
间隔是一致的,即均匀间隔- 用于定期更新,例如调整物理(例如刚体)对象
*要记住的一件事:“输入”也可以在框架上工作。由于击键通常旨在触发物理系统上的力,因此在 FixedUpdate() 中使用 GetKeyDown/Up 是一个常见的陷阱。这将导致点击丢失,因为这些函数仅在一个 Frame 中返回 True,因此可能会跳过整个 FixedUpdate() 事件。
Unity 官方学习链接 [FixedUpdate Vs Update] 里面有视频,方便学习和理解 [https://learn.unity.com/tutorial/update-he-fixedupdate#]
Comments | NOTHING