Open6

UnityのMonoBehaviourについて

星にゃーん星にゃーん

UnityのC#スクリプトは、MonoBehaviourを継承することになっているらしい。より詳細な仕様やノウハウを調査する。

星にゃーん星にゃーん

スクリプトが有効になったフレームで、MonoBehaviour.Start()メソッドが呼び出される。Start()は、オブジェクトの初期化に関する処理を行う。
また、すべてのStart()に先立って、MonoBehaviour.Awake()が呼ばれる。

クラスAのインスタンスの初期化にクラスBの初期化済みインスタンスが必要な場合、Bの初期化はAwake()で、Aの初期化はStart()で行うべき。
Awake()はすべてのGameObjectの初期化後に呼ばれるため、参照が必要なだけならGameObject.FindWithTagなどのメソッドを利用できる。

また、スクリプトのComponentが無効化されていても、紐づいているGameObjectが有効ならAwake()が呼ばれる。一方、Start()は呼ばれない。