Menu
CoddyTech

ライフサイクルの実行順序

CoddyのUnityジャーニー「Unityスクリプティングの基礎」セクションの一部。レッスン 58/67。

Unity は、オブジェクトが出現した瞬間から破棄される瞬間まで、スクリプトのメソッドを決まった順序で呼び出します。

  1. Awake():オブジェクトが読み込まれたとき、または生成されたときに1回。
  2. OnEnable():その直後に、さらにオブジェクトが表示されるたびに。
  3. Start():スクリプトの最初のフレームの前に1回。
  4. FixedUpdate():物理演算のクロックに合わせて、デフォルトでは1秒間に50回実行されます。そのため、1フレーム内で0回、1回、または複数回実行され、必ずそのフレームのUpdate()より前に呼び出されます。
  5. Update():フレームごとに1回。
  6. LateUpdate():フレームごとに1回、すべてのUpdate()の後。
  7. OnDisable():オブジェクトが非表示になるたびに、また破棄される前に。
  8. OnDestroy():オブジェクトが破棄されるときに1回。

オブジェクトがアクティブである間、ステップ4から6はフレームごとに繰り返されます。生成されたオブジェクトも同じ順序をたどります。Instantiateは戻る前に複製されたオブジェクトのAwake()とOnEnable()を実行し、その複製のStart()は最初のUpdate()より前に実行されます。

この順序から、2つの習慣が導かれます。Awake()のコードでオブジェクト自身のフィールドを初期化しておけば、他のすべてのオブジェクトのStart()が実行される時点で準備が整います。また、物理演算のコードはFixedUpdate()に記述します。そのステップの間隔は常に0.02秒なので、フレームの速さにかかわらず一定です。

自分で試してみよう

このレッスンにはコードチャレンジは含まれていません。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Unityスクリプティングの基礎のすべてのレッスン