Unity生命周期

生命周期

生命周期函数:需要继承 MonoBehaviour 类才能使用。生命周期函数全部都是由系统定义好的,系统会自动调用,且调用顺序和我们在代码里面的书写顺序无关。

常用的生命周期函数

  • Awake():唤醒事件,游戏一开始运行就执行,只执行一次。

  • OnEnable():启用事件,只执行一次。当脚本组件被启用的时候执行一次。

  • Start():开始事件,执行一次。

  • FixedUpdate():固定更新事件,执行N次,0.02秒执行一次。所有物理组件相关的更新都在这个事件中处理。

  • Update():更新事件,执行N次,每帧执行一次。

  • LateUpdate():稍后更新事件,执行N次,在 Update() 事件执行完毕后再执行。

  • OnGUI():GUI渲染事件,执行N次,执行的次数是 Update() 事件的两倍。

  • OnDisable():禁用事件,执行一次。在 OnDestroy() 事件前执行。或者当该脚本组件被“禁用”后,也会触发该事件。

  • OnDestroy():销毁事件,执行一次。当脚本所挂载的游戏物体被销毁时执行。

生命周期函数执行顺序图:

参考

https://www.cnblogs.com/xiaoyulong/p/7922985.html

### Unity 生命周期详解 #### Awake 方法 Awake 是在脚本实例的生存期内由 Unity 只调用一次的方法。该方法用于替代构造函数进行初始化操作,因为 Unity 中组件的初始化并不依赖于传统的构造函数机制[^1]。 ```csharp void Awake() { // 初始化代码写在这里 } ``` #### OnEnable 方法 每当 GameObject 对象或其上的脚本被激活时都会触发 `OnEnable` 方法。这不仅发生在首次创建对象时,也包括当对象从非活动状态切换至活动状态之时][^[^23]。 ```csharp void OnEnable() { // 当游戏对象变为活跃状态时执行此代码 } ``` #### Start 方法 Start 函数会在第一次更新之前被执行,并且只运行一次。它通常用来完成那些需要等待所有资源都准备好才能做的工作,比如获取其他组件引用等。 ```csharp void Start() { // 这里可以放置一些延迟初始化逻辑 } ``` #### Update 和 FixedUpdate 方法 Update 每帧都被调用,适用于处理每帧都需要做的事情;而 FixedUpdate 则按照固定的时间间隔调用,主要用于物理计算相关的任务。 ```csharp void Update() { // 每帧执行的操作放在此处 } void FixedUpdate() { // 物理引擎相关的工作应该放在这个函数里面 } ``` #### OnDestroy 方法 当一个对象即将被销毁前会自动调用 OnDestroy 。这对于清理不再使用的资源非常有用,例如取消订阅事件监听器或者释放网络连接等等。 ```csharp void OnDestroy() { // 清除工作可在此实现 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值