酷熊科技工作积累 ----------- Unity3d中的Awake()OnEnable()Start()等默认函数的执行顺序和生命周期

Posted silent-bobo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了酷熊科技工作积累 ----------- Unity3d中的Awake()OnEnable()Start()等默认函数的执行顺序和生命周期相关的知识,希望对你有一定的参考价值。

 

Awake()在MonoBehavior创建后就立刻调用,在脚本实例的整个生命周期中,Awake函数仅执行一次;如果游戏对象(即gameObject)的初始状态为关闭状态,那么运行程序,Awake函数不会执行;如果游戏对象的初始状态为开启状态,那么Awake函数会执行;值得注意的一点是,Awake函数的执行与否与脚本实例的状态(启用或禁用)并没有关系,而是与脚本实例所绑定的游戏对象的开关状态有关。如果重新加载场景,那么场景内Awake函数的执行情况重新遵循上述两点。

 

Start()将在MonoBehavior创建后在该帧Update()第一次执行前被调用;Start()函数只在脚本实例被启用时才会执行;Start函数总是在Awake函数之后执行。如果游戏对象开启了,对象上绑定的脚本实例被禁用了,那么Start函数不会执行。这是Start函数的特点,只有在脚本实例被启用时它才会执行,并且Start函数只会在脚本实例首次被开启时才会执行。如果是已经开启过的脚本实例被关闭后再次开启,那么Start函数不会再次执行。

 

一般开发中都是在Awake函数中获取游戏对象或者脚本实例的信息,然后在Start函数中进行一些获取之后的初始化设置。

 

Awake、OnEnable、Start,都是游戏开始运行前就调用的方法。

GameObject的Activity为true,脚本的enable为true时,其先后顺序为:Awake、OnEnable、Start;
GameObject的Activity为true,脚本的enable为false时,只运行Awake;

GameObject的Activity为false时,以上都不调用,OnDisable()被调用;

 

OnDestory:物体被删除时调用。

Update:当MonoBehaviour启用时,其Update在每一帧被调用;

LateUpdate:当Behaviour启用时,其LateUpdate在每一帧被调用

FixedUpdate:这个函数会在每个固定的物理时间片被调用一次.这是放置游戏基本物理行为代码的地方。UPDATE之后调用。

Reset:Reset是在用户点击检视面板的Reset按钮或者首次添加该组件时被调用.此函数只在编辑模式下被调用.Reset最常用于在检视面板中给定一个最常用的默认值.

OnGui:这个函数会每帧调用好几次(每个事件一次),GUI显示函数只能在OnGui中调用

技术分享


以上是关于酷熊科技工作积累 ----------- Unity3d中的Awake()OnEnable()Start()等默认函数的执行顺序和生命周期的主要内容,如果未能解决你的问题,请参考以下文章

酷熊科技工作积累 ----------- Unity3D 读取 图片

酷熊科技工作积累 ----------- Unity3D / c 语言 使用 Stringbuilder 引用头文件 using System.Text

酷熊科技工作积累 ----------- Unity3d中的Awake()OnEnable()Start()等默认函数的执行顺序和生命周期

CDI-Unit @Produces 不工作

Unit 06 实际接触工作

Unit 04 职前工作说明