FixedUpdate()与Unity3D Update() 的区别

手册/FAQ (408) 2016-04-06 09:47:33

   今天有人问我问什么我在处理物理逻辑的时候把代码放在了FixedUpdate里,而不用Update?我说下他们的区别吧,知道了各自的特点,就知道原因了。
   Update() 和 FixedUpdate()在游戏中都会在更新的时候自动循环调用。但是Update是在每次渲染新的一帧的时候才会调用,也就是说,这个函数的更新频率和设备的性能有关以及被渲染的物体(可以认为是三角形的数量)。在性能好的机器上可能fps 30,差的可能小些。这会导致同一个游戏在不同的机器上效果不一致,有的快有的慢。因为Update的执行间隔不一样了。而FixedUpdate,是在固定的时间间隔执行,不受游戏帧率的影响。有点想Tick。所以处理Rigidbody的时候最好用FixedUpdate。

PS:FixedUpdate的时间间隔可以在项目设置中更改,Edit->Project Setting->time  找到Fixed timestep。就可以修改了。

 

THE END