【unity2D】API-学习记录2-Update、FixedUpdate与LateUpdate
目标
之前仅仅知道Update与FixedUpdate,前者每帧调用一次,后者每隔单位时间间隔调用一次。还有一个叫LateUpadte的函数。现在趁热打铁,希望能掌握这些函数。
先上结论。
结论
Update | FixedUpdate | LateUpdate | |
---|---|---|---|
调用时机 | 每一帧 | (默认)每0.02秒 | 场景中所有Update执行完后 |
注意事项
1.Update是每一帧调用一次,若不同电脑跑的帧率不同,那么该函数被调用的次数就会不同。这可能影响到游戏的某些方面,比如用Transform.translate移动时,相同时间内,帧率较高的比帧率较低的移动距离更长,诸如此类。
如果想消除这个影响,一是让它在FixedUpdate里执行,二是在受影响的参数上乘以Time.deltaTime,这个Time.deltaTime以后再展开学习,此处不多赘述。
2.如果一味地追求时间平滑而把按键输入(比如Input.GetKeyDown(KeyCode.Space))写进FixedUpdate里,那么可能造成按键失灵的bug。
要解决这个问题,只需把按键输入写在Update里,而非FixedUpdate里。在unity的API中可以查阅到相关内容,以后再展开学,此处不多赘述。
3.如果需要修改FixedUpdate的调用时间间隔,可以点开Edit > Settings > Time > Fixed Timestep里自行设置。
参考资料
补充
在CSDN上找到一篇相关博客,对于实现某些效果应该会有用,日后同Time总结。