-
在Unity中,各个生命周期函数是在特定的时机被调用的,它们的执行顺序如下:
1.Awake:
当脚本实例被加载时调用,用于初始化数据。
如果物体上有多个脚本,它们的Awake方法会在Start方法之前执行。
2.OnEnable:
当对象变为活动状态(enabled)或脚本被启用时调用。
如果在场景加载后对象已经是活动状态,OnEnable会在Awake之后立即调用。
3.Start:
在对象第一次帧更新前调用,用于初始化数据。
在Awake之后调用,如果对象启用时已经被激活。
4.FixedUpdate:
固定的物理更新时间步长(可以通过设置Time.fixedDeltaTime调整)。
用于处理物理更新和固定间隔的计算。
5.Update:
每帧调用一次,用于处理游戏逻辑。
大多数游戏逻辑和用户输入处理都应该放在这里。
6.LateUpdate:
在所有Update调用后被调用,确保在所有脚本的Update方法执行完毕后执行。
通常用于跟随摄像机,处理相机移动和物体追踪等。
7.OnDisable:
当对象变为非活动状态(disabled)或脚本被禁用时调用。
用于清理和释放资源,如移除事件监听器等。
8.OnDestroy:
当对象被销毁前调用,用于最终的清理工作和资源释放。这些生命周期函数的执行顺序是固定的,并且对于每个对象的每个脚本实例,它们都会按照上述顺序依次被调用。
生命周期函数并不是基类中的成员,为什么Unity可以自动执行这些函数?
Unity帮助使用者记录了场景中所有GameObject对象以及各个关联的脚本对象,在游戏执行的特定时期,通过函数名反射(C#的反射机制)得到脚本对象中的对应生命周期函数,然后在特定时机执行它们。
标签:脚本,生命,调用,对象,周期函数,Unity,Awake From: https://blog.csdn.net/m0_74081230/article/details/139692025