Unity 继承MonoBehaviour脚本 执行顺序 详解

先看结果

Awake ->OnEnable-> Start ->-> FixedUpdate-> Update  -> LateUpdate ->OnGUI ->OnDisable ->OnDestroy

 

如果Script0, Script1,Script2脚本上都有Awake OnEnable Start这些函数

执行顺序

Script0, Script1,Script2脚本上Awake函数

Script0, Script1,Script2脚本上OnEnable函数

Script0, Script1,Script2脚本上Start函数

。。。。。。。。。。

 

如果一定要明确Script0的Awake函数执行顺序高于Script1,Script2的Awake函数

则需要设置脚本执行的顺序

点击红色框的+号 添加对应的脚本

*数值越小的脚本将先执行,如果没有设置的脚本将按默认的顺序执行。

 

 

 

 

 

 

详解

 

Awake(执行一次)    

官方解释:当一个脚本实例被载入时Awake被调用

最最最最开始被调用

执行代码

Instantiate("实例化的预设");

*同时预设上Inspector红色圈为勾选状态

预设上的脚本会立马执行Awake函数;

 

 

OnEnable(执行多次)  

官方解释:当对象变为可用或激活状态时此函数被调用。 

每次激活对象时 对象上继承MonoBehaciour上脚本 会调用一次

执行代码

gameObject.SetActive(false);//先隐藏对象
gameObject.SetActive(true);//显示对象

enabled = false;//先关闭启用

enabled = true;//开启启用

*都会立马会执行OnEnable函数

*函数里适合放适配的逻辑

 

 

Start(执行一次)  

官方解释:Start仅在Update函数第一次被调用前调用。

红色框勾选对应继承MonoBehaciour脚本的继承变量enabled

enabled  官方解释:启用行为被更新,禁用行为不更新。 

即enabled == false 不执行Update函数 enabled == true 执行Update函数

 

*如果运行前不勾选红色框勾选或者在Awake函数里调用 enabled == false 则不会执行Start函数。

*Start函数适合放界面初始化 设置文本内容 过去子级对象 逻辑

 

FixedUpdate(执行N次)  

官方解释: 当MonoBehaviour启用时,其 FixedUpdate 在每一帧被调用。 

FixedUpdate时间在Edit->ProjectSettings->Time修改

最好不要去修改这个时间

*FixedUpdate函数适合调用Rigidbody逻辑

 

 

Update(执行N次)  

官方解释: 当MonoBehaviour启用时,其Update在每一帧被调用。 

实现各种游戏行为最常用的函数

*当enabled == false 不执行Update函数

 

LateUpdate(执行N次)  

官方解释: 当Behaviour启用时,其LateUpdate在每一帧被调用。 

*先执行Updatee然后执行lateUpdate。

 

 

OnGUI(执行N次)  

官方解释: 渲染和处理GUI事件时调用。

 

OnDisable(执行多次)  

官方解释: 当对象变为不可用或非激活状态时此函数被调用。

于OnEnable相对应 一个是打开后会调用 一个是关闭后调用。

 

OnDestroy(执行多次)  

官方解释: 当MonoBehaviour将被销毁时,这个函数被调用。

执行

Destroy(gameObject);

挂载在gameObject上的脚本立马会执行OnDestroy函数。

posted @   邹强  阅读(1135)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示