2017-01-25 5 views
5

私はUnityドキュメントでこれを読んでいます:Unityでは、ゲームが始まる前かシーンが始まる前にAwake()が呼び出されますか?

スクリプトインスタンスがロードされているときに呼び出されます。

ゲームが開始される前に、変数またはゲームの状態を初期化するために使用されます。

これは矛盾していませんか?ゲームの起動時にAwake()関数が呼び出されるか、またはスクリプトが存在するシーンがロードされたときに呼び出されますか?

答えて

5

あなたがUnity3DのExecution Order of Eventsを理解していれば本当にありません。

ゲームには、1つのシーンまたは複数のシーンを含めることができます。

シーンがロードされているのであれば、順序は次のとおりです。

  • Awake() - 変数を初期化するためのパーフェクト。 起動時にGameObjectがアクティブではないことを確認してください。このオブジェクトがアクティブになるまで、Awakeメソッドは呼び出されません(ありがとう@Everts)。

  • Start() - アクティブGameObject年代の他のすべてのAwake()メソッドが呼び出されるので、あなたのコアゲームロジックを開始します。

  • まずUpdate()コールなど....何を明確にしているのは用語である

ゲームがを開始..before ..

これは、ゲームロジックが始まる前の簡単なことを意味します。

+1

あなたはそうです、私はこの言葉では本当に明確ではありませんでした。ありがとう。 –

+0

「ゲーム」という言葉は「コンポーネント」に似ています。これは、コンテキストに応じてすべてを意味する可能性があります。 ;) – Smartis

+1

これは答えの一部です。実行時に作成されたオブジェクト、Awakeで作成されたオブジェクト、非アクティブ化されたオブジェクト、エディタから非アクティブなオブジェクトなども評価する必要があります。 – Everts

関連する問題