生命周期函数与异步调用※
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:固定步长,与帧率无关,适合刚体/物理