首先要知道的是:
void Update()是用来更新的;
void FixedUpdate()是用来固定更新的;
void LateUpdate()是用来晚于更新的;
详细解释:Update()
Update是系统默认每一帧都调用的方法,它有个缺点,即它的调用会随着硬件帧数的变化而变化,它的更新时间不确定,有的时候快,有的时候慢,比如上一帧用了几毫秒,下一帧可能会用几秒。
FixedUpdate与Update方法的相同之处在于当MonoBehaviour被启动的时候,这两个方法都是会在每一帧都被调用,不同之处在于,FixedUpdate方法在调用的时候,它的调用事件是一定的,也就是说,他不会随着系统的帧数而发生变化。
所以一些物理属性的更新操作应该放在FxiedUpdate中操作,比如Force,Collider,Rigidbody等。外设的操作也是,比如说键盘或者鼠标的输入输出Input,因为这样GameObject的物理表现的更平滑,更接近现实。
LateUpdate,从名字上就可以看出,它是晚于Update调用,比如实现相机跟随的功能,当被跟随的物体都移动完成之后,在调用LateUpdate中的相机跟随功能。具体的实现机制是,Unity在后台将所有的Update、LateUpdate制作成两个不相干的线程,先执行Update所在的线程,当执行完之后,再去执行LateUpdate所在的线程。
好处:比如说,有两个不同的脚本同时在Update中控制同一个物体,如果当物体发生物理变化的时候,如旋转,在世界中的连续位置变化等等,如果将相机跟随的函数方法写在了Update中,就会发生相机中物体在抖动的现象,如果写在LataUpdate中,相机只会跟随物体在更新之后的位置,这样物体就不会发生抖动了。
关于Update,FixedUpdate,与LateUpdate的区别 (初学:15)
最新推荐文章于 2025-11-13 18:05:50 发布
本文详细介绍了Unity中三种更新方法:Update(), FixedUpdate() 和 LateUpdate() 的使用场景与区别。Update()适用于每帧调用但时间间隔不稳定的情况;FixedUpdate()确保固定时间间隔执行,适合处理物理和输入操作;LateUpdate()则在所有Update执行后调用,适用于相机跟随等功能,避免物体抖动。
2043

被折叠的 条评论
为什么被折叠?



