Unity C#学习日志 生命周期函数

LiFasT
LiFasT
Published on 2024-11-02 / 30 Visits
0
0

生命周期函数

生命周期函数执行的顺序如下:

Awake() -> OnEnable() -> Start() -> FixedUpdate() -> Update() -> LateUpdate() -> OnDisable() -> OnDestroy() -> OnApplicationQuit()

准备阶段

Awake()

当脚本实例被加载时最先调用。Awake()通常用于初始化变量和设置依赖关系,它会在所有对象的Start()方法之前被调用,即使对象还未激活。

OnEnable()

在对象或脚本被启用时调用。如果对象在场景加载时已启用,OnEnable()会在Awake()之后立即调用。每次重新启用对象时,都会触发OnEnable()

Start()

在第一次更新前调用,仅在对象被启用的情况下调用一次。Start()通常用于启动时的设置或在其他脚本的Awake()完成后需要初始化的内容。

更新阶段

FixedUpdate()

以固定的时间间隔调用,通常用于物理更新(如物理计算和力学),与帧率无关。适用于刚体(Rigidbody)的操作。

Update()

每帧调用一次,基于帧率。Update()通常用于大多数非物理的连续操作(如监听输入、移动角色)。

LateUpdate()

每帧在Update()之后调用。适用于需要在其他更新逻辑完成后执行的操作,例如相机跟随。

结束阶段

OnDisable()

对象或脚本被禁用时调用,每次禁用时都会触发。用于停止某些状态或行为。

OnDestroy()

对象被销毁时调用,例如切换场景或销毁对象。适用于清理资源或解除事件绑定。

OnApplicationQuit()

当应用程序退出时调用,可以在此保存数据或清理资源。

暂停与恢复

OnApplicationPause(bool pauseStatus)

当应用暂停或恢复时调用,例如切换应用或暂停游戏。

OnApplicationFocus(bool hasFocus)

当应用获得或失去焦点时调用,常用于暂停和恢复输入或音乐等。


Comment