猴子原创,欢迎转载。转载请注明: 转载自Cocos2D开发网--Cocos2Dev.com,谢谢! 原文地址: http://www.cocos2dev.com/?p=307
今天有人问我问什么我在处理物理逻辑的时候把代码放在了FixedUpdate里,而不用Update?
我说下他们的差别吧,知道了各自的特点,就知道原因了。
Update() 和 FixedUpdate()在游戏中都会在更新的时候自己主动循环调用。
可是Update是在每次渲染新的一帧的时候才会调用,也就是说,这个函数的更新频率和设备的性能有关以及被渲染的物体(能够觉得是三角形的数量)。在性能好的机器上可能fps 30,差的可能小些。这会导致同一个游戏在不同的机器上效果不一致,有的快有的慢。由于Update的运行间隔不一样了。
而FixedUpdate,是在固定的时间间隔运行,不受游戏帧率的影响。有点想Tick。所以处理Rigidbody的时候最好用FixedUpdate。
PS:FixedUpdate的时间间隔能够在项目设置中更改,Edit->Project Setting->time 找到Fixed timestep。就能够改动了。