【发布时间】:2017-01-25 08:50:40
【问题描述】:
我在 Unity 文档中读到了这个:
在加载脚本实例时调用 Awake。
Awake 用于初始化任何变量或游戏状态之前 游戏开始。
这不是矛盾吗? Awake() 函数是在游戏启动时调用,还是在脚本所在场景加载时调用?
【问题讨论】:
我在 Unity 文档中读到了这个:
在加载脚本实例时调用 Awake。
Awake 用于初始化任何变量或游戏状态之前 游戏开始。
这不是矛盾吗? Awake() 函数是在游戏启动时调用,还是在脚本所在场景加载时调用?
【问题讨论】:
如果您了解 Unity3D 中的 Execution Order of Events,则并非如此。
一个游戏可以包含一个或多个场景。
因此,如果加载了场景,则序列为:
Awake() - 非常适合初始化变量。 还要考虑 GameObject 在启动 Awake 期间是否处于非活动状态,在此对象激活之前不会调用它的 Awake 方法(感谢 @Everts)。
Start() - 启动您的核心游戏逻辑,因为所有其他活动的GameObject 的Awake() 方法都被调用。
第一个Update()呼叫等等......
你要澄清的是这个术语:
..比赛开始前..
这意味着在您的游戏逻辑开始之前。
【讨论】:
Game 这个词就像Component。它可能意味着一切,具体取决于上下文。 ;)