在脚本的整个生命周期中,Unity主要提供了3种更新方法。
1)Update():每一帧执行时,都会立即调用此方法。
2)LateUpdate():LateUpdate是在所有Update方法调用之后被调用(语出圣典)。
3)FixedUpdate():固定更新。默认情况下,系统每0.02秒调用一次,具体的间隔时间可以在 TimeManager 中配置。在导航菜单栏中选择 Edtior→Project Settings→Time 菜单项,即可打开 TimeManager(详见文末)。

总体来说,Update() 和 LateUpdate() 属于立即更新,更新之间的频率是不固定的,比如某一帧有一个耗时操作时,就会影响到下一帧更新时间,所以对更新频率要求比较稳定的物理系统(如Rididbody)就不太适合在这里处理更新。

FixedUpdate() 虽然是固定更新,但是其实也是相对固定的,比如某一帧耗了好几秒,它依然会卡住。不过正常的程序会优化耗时操作,小范围的帧率波动是正常的,可以让它更新的时间间隔稍微长一点,这样它的更新是比较平滑的。在实际的开发中,例如以秒为单位的倒计时,并不需要每一帧去判断时间,所以用 FixedUpdate 就再合适不过了。

拓展:TimeManager(时间管理类)
Unity中Update,LateUpdate,FixedUpdate的区别
Fixed Timestep:固定时间步长。功能:独立于帧速率的时间间隔,用来命令何时执行物理计算和FixedUpdate() 事件。
Maximum Allowed Timestep:允许的最大时间步长。功能:独立于帧速率的时间间隔,当帧速率低时,它会覆盖最坏的案例场景,执行物理计算和(FixedUpdate()) 事件的时间不会超过规定的时间。
Time Scale:时间尺度 ,控制游戏的速度,0在游戏中代表暂停,1表示正常运行,2表示时间加倍;

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-06-25
  • 2021-06-23
  • 2021-08-04
  • 2022-12-23
  • 2021-05-04
猜你喜欢
  • 2021-12-18
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-16
  • 2021-08-14
  • 2022-12-23
相关资源
相似解决方案