在Unity中,是在游戏开始之前还是在场景开始之前调用Awake()?

时间:2017-01-25 08:50:40

标签: c# unity3d

我在Unity文档中读到了这个:

  

加载脚本实例时会调用Awake。

     

唤醒用于初始化之前的任何变量或游戏状态   游戏开始。

这不矛盾吗?是在启动游戏时调用Awake()函数,还是在加载脚本的场景时调用它?

1 个答案:

答案 0 :(得分:5)

如果你理解Unity3D中的Execution Order of Events,那不是真的。

游戏可以包含单个场景或多个场景。

因此,如果加载场景,则序列为:

  • Awake() - 适合初始化变量。 还要考虑 GameObject 在启动时是否处于非活动状态唤醒,在该对象处于活动状态之前,不会调用它的唤醒方法(感谢@Everts)。 < / p>

  • Start() - 启动核心游戏逻辑,因为调用了所有其他Awake()个有效GameObject方法。

  • 首先Update()来电等等......

您需要澄清的是术语:

  

..在游戏开始之前 ..

这意味着,在游戏逻辑开始之前。