我在Unity文档中读到了这个:
加载脚本实例时会调用Awake。
唤醒用于初始化之前的任何变量或游戏状态 游戏开始。
这不矛盾吗?是在启动游戏时调用Awake()函数,还是在加载脚本的场景时调用它?
答案 0 :(得分:5)
如果你理解Unity3D中的Execution Order of Events,那不是真的。
游戏可以包含单个场景或多个场景。
因此,如果加载场景,则序列为:
Awake()
- 适合初始化变量。 还要考虑 GameObject
在启动时是否处于非活动状态唤醒,在该对象处于活动状态之前,不会调用它的唤醒方法(感谢@Everts)。 < / p>
Start()
- 启动核心游戏逻辑,因为调用了所有其他Awake()
个有效GameObject
方法。
首先Update()
来电等等......
您需要澄清的是术语:
..在游戏开始之前 ..
这意味着,在游戏逻辑开始之前。