Start和Awake方法的区别和使用
1. Awake
Awake is called when the script instance is being loaded.
Awake方法在脚本实例正在被加载的时候调用
Awake方法在脚本的生命周期中只调用一次
Awake方法会在所有object都初始化后调用,所以不用担心object还没有加载出来,GameObject的find方法可以找到引用
Awake方法的调用顺序在object之间时随机的
当所有对象的Awake方法都调用完成后,才会执行第一个Start方法
Awake方法就像构造函数一样
Awake方法不论脚本是否启用,都会调用
2. Start
Start is called on the frame when a script is enabled just before any of the Update methods is called the first time.
脚本被启用的时候,Start方法被调用,且是在Update方法之前被调用
Start方法在脚本生命周期中只调用一次
Start方法在脚本启用时才会调用,也就是启用的第一次才调用
3. OnEnable
This function is called when the object becomes enabled and active.
这个方法在对象被激活和启用时调用
OnEnable方法时在Awake之后Start之前调用,和他们不同的是,此方法可以调用多次。
4. Awake和Start方法的比较
大部分情况下,两个方法都可以用来初始化,但是当A的初始化要用到B的初始化时,我们可以把B的初始化放在Awake中,然后A在Start中使用B就没有问题了。
这是因为所有的Start方法的执行顺序都是随机的,假如A在Start中初始化了某个值,而B要获取这个值,而我们不知道哪个Start会先执行,可能B先执行,所以这样可能就报错了。
如果我们必须规定脚本的执行顺寻,我们可以按照下图进行设定。
- 本文固定链接: http://jingyan.idoubi.net/1092.html
- 转载请注明: 游戏创作者大陆 于 逗分享开发经验 发表