生命周期函数与异步调用

生命周期函数与异步调用

Unity 脚本的生命周期函数由引擎在特定时机自动调用,理解执行顺序是编写正确逻辑的基础。

执行顺序

Awake()          // 对象加载时调用一次(最先,用于初始化)
OnEnable()       // 对象启用时
Start()          // 首次 Update 前调用一次(用于启动逻辑)
FixedUpdate()    // 固定频率(默认 0.02s),物理计算用
Update()         // 每帧调用,常规逻辑
LateUpdate()     // Update 之后
OnDisable()      // 对象禁用时
OnDestroy()      // 销毁时

异步调用

// 延迟调用
Invoke("MethodName", 2f);            // 2 秒后调用
InvokeRepeating("Method", 1f, 2f);   // 1 秒后每 2 秒重复
CancelInvoke();

// 协程延迟(见协程笔记)
StartCoroutine(WaitAndDo());

// Unity 2020+:C# async/await(需 UniTask 或自定义)
async void LoadAsync()
{
    await Task.Delay(1000);
    Debug.Log("done");
}

Update 与 FixedUpdate 区别

  • Update:每帧,帧率相关,适合输入/UI/逻辑
  • FixedUpdate:固定步长,与帧率无关,适合刚体/物理

“您的支持是我持续分享的动力”

微信收款码
微信
支付宝收款码
支付宝


目录