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

5 c# unity-game-engine

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

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

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

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

Sma*_*tis 5

如果你理解Unity3D 中事件执行顺序,那不是真的.

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

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

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

  • Start()- 启动核心游戏逻辑,因为所有其他Awake()活动方法GameObject都被调用.

  • 第一次Update()通话等等......

你要澄清的是这个词:

..before的游戏开始 ..

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