Unity中 Start和Awake的区别

Awake和Start在Unity中都是MonoBehaviour脚本中的生命周期函数

Awake函数在游戏对象首次被加载时调用,在游戏对象初始化之前调用。

start函数在游戏对象初始化完成后调用,在update第一次执行前调用。

这两个函数在其生命周期内都只会调用一次,反复启用禁用该物体或者脚本实例都不会再次调用。

这样说好像难以理解,但是做个测试就知道了。

即使脚本实例不启用,但是awake函数仍然会调用:

因为awake函数只和脚本实例所绑定的游戏对象的状态有关,与脚本实例的状态(启用或禁用)无关。

但start函数只有在脚本实例是激活状态下才会被调用:

不同物体间start函数的调用顺序是没法保证的。

在调用任何对象的 Start 函数之前,将在场景中的所有对象上调用 Awake 函数。如果对象 A 的初始化代码需要依赖于已经初始化的对象 B,则这一点会非常有用;此时,B 的初始化应在 Awake 中完成,A 则应在 Start 中完成。

 

假如我们在A的start函数中初始化了某个数据,

你可能感兴趣的:(unity,游戏引擎)