Unity中Update和FixedUpdate的区别

本文深入探讨Unity中Update和FixedUpdate函数的使用差异,特别是在物理属性更新场景下的应用。通过对比分析,揭示Update和FixedUpdate在渲染帧间隔、执行效率和物理属性更新效果上的区别,强调在物理模拟和外设交互中使用FixedUpdate的重要性以实现更平滑、真实的物理表现。
一直以来用的最多的是Update,但是当在Unity中处理一些物理有关属性的更新时,应该在FixedUpdate中处理,因为效果会更好。
看看unity官方的Script Life Flowchart图(地址:http://docs.unity3d.com/Manual/ExecutionOrder.html)

Script Life Flowchart

显然,FixedUpdate跟Update这两个函数处于不同的“帧环”(自己发明的词)中,FixedUpdate处于Physics帧环中,而Update显然不是。所以这两个函数的使用也有了不同。
1.Update的执行受场景GameObject的渲染的影响,三角形的数量越多,渲染所需要的时间也就越长。FixedUpate的执行则不受这些影响。
2.由于前面的1的原因,Update每个渲染帧之间的间隔是不相等的,而Fixedupdate在每个渲染帧之间的时间间隔是相等的。下面的代码很好的演示了这个不同
using UnityEngine;
using System.Collections;

public class UpdateAndFixedUpdateTest : MonoBehaviour
{
    void FixedUpdate ()
    {
        Debug.Log("FixedUpdate time :" + Time.deltaTime);
    }


    void Update ()
    {
        Debug.Log("Update time :" + Time.deltaTime);
    }
}
输出结果如下:

输出结果

可以看到,FixedUpdate每次渲染帧之间的时间间隔是相等的,而Update却不尽相同。

3.由于1,2的原因,所以一些物理属性的更新操作应该放在FxiedUpdate中操作,比如Force,Collider等。外设的操作也是,比如说键盘或者鼠标的输入输出Input,因为这样GameObject的物理表现的更平滑,更接近现实。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值