Awake和Start在Unity中都是MonoBehaviour脚本中的生命周期函数
Awake函数在游戏对象首次被加载时调用,在游戏对象初始化之前调用。
start函数在游戏对象初始化完成后调用,在update第一次执行前调用。
这两个函数在其生命周期内都只会调用一次,反复启用禁用该物体或者脚本实例都不会再次调用。
这样说好像难以理解,但是做个测试就知道了。
即使脚本实例不启用,但是awake函数仍然会调用:
因为awake函数只和脚本实例所绑定的游戏对象的状态有关,与脚本实例的状态(启用或禁用)无关。
但start函数只有在脚本实例是激活状态下才会被调用:
不同物体间start函数的调用顺序是没法保证的。
在调用任何对象的 Start 函数之前,将在场景中的所有对象上调用 Awake 函数。如果对象 A 的初始化代码需要依赖于已经初始化的对象 B,则这一点会非常有用;此时,B 的初始化应在 Awake 中完成,A 则应在 Start 中完成。
假如我们在A的start函数中初始化了某个数据,