Unityがプレイモードに入るときのコールバック呼び出し順

プレイボタンをポチっと押してから、実際にプレイ開始されるまでの間に呼ばれるコールバックの呼び出し順を調べてみたのでその覚書。

今回調べたもの

UnityEditor

UnityEngine

スクリプト

スクリプトはこちら

これを適当なGameObjectに張り付けて、プレイボタンをポチっとすればConsoleにログが表示されます。

Unity2020.1.2f1で確認

試しにUnity2020.1.2f1で確認してみたところ以下のようになりました。

※ Enter Play Mode Settingsはオフ(全てリロードされる状態)
※「PlayStart」、「 Play : 時間」と出るログは別物のログ。
※「Error detecting ~」はVS周りのエラーログ(?)

個人的にOnAfterDeserialize()が呼び出されるタイミングが意外ですね。

  • プレイボタン押した直後からInitializeOnEnterModeの間に古いインスタンスのOnAfterDeserializeが呼ばれている点
  • DidReloadScripts直後に呼ばれておりBeforeSceneLoad~AfterSceneLoadの間ではない点

この辺りは気を付けたほうが良さそうです。

Unityのアセット販売中!

Arbor 3

ステートマシンの状態遷移やパラメータはエディタで編集でき、
ゲームロジックに依存するステートの挙動はスクリプトで記述可能なエディタ拡張。

詳細はこちら

Nostalgia 2

RPGツクールVXやWOLF RPGエディターのオートタイルに準拠したエディタ拡張。

詳細はこちら

オススメ!


Privacy Preference Center

Your Privacy

This site uses cookies to display contents and advertisements tailored to users, provide social media functions, measure advertisement impressions and clicks. We also gather information on users' site usage status and provide them to social media, advertisement distribution and data analysis partners. Each partner may use this information in combination with other information that the user provided to each partner or other information gathered when the user used the service of each partner.

Analytics, Ads