【Unity】MonoBehaviourの初期化イベントについて考察します!
Unityのスクリプト(MonoBehaviour)には様々なイベント関数が用意されています。初期化イベントも複数用意されていて、それらの初期化イベントの使い分けについて考察します。
Unityの初期化イベントの使い分け方が分からないよお・・・
私の経験から初期化イベント関数の使い分けを簡単に紹介しますね。
初期化イベントについて
Unityの初期化イベントにはAwake、OnEnable、Startの3種類あります。これらの初期化関数は以下の順序で呼ばれます。
順序 | 初期化関数名 |
---|---|
1. | Awake |
2. | OnEnable |
3. | Start |
呼ばれる順番は分かったけどどう使い分ければいいのかな?
初期化イベントの考察
ここからは初期化関数の考察になります。私見が含まれますので参考程度にご覧くださいね。
Awakeの考察
Awakeは一番最初に呼ばれる初期化関数です。最初に呼ばれるので私は外部ライブラリやシングルトンなどシステム系の初期化に使います。コンテンツに含まれるオブジェクトなどの初期化には使いません。確実に最初に初期化したいものをAwake関数で初期化します。
Awakeは一番最初に呼ばれる初期化関数なんだね!
OnEnableの考察
OnEnableはAwakeの次に呼び出される初期化関数ですが、エディターのチェックボックスのオンオフによっても呼び出されます。チェックをオンにするとOnEnableが、オフにするとOnDisableが呼び出されます。このような特徴があるので私はエディターのパラメーターを利用するリソースの初期化関数として使用します。OnEnableを実装する場合は忘れずにOnDisableもセットで実装しましょう。
OnEnableはインスペクターのチェックボックスでも呼び出されるんだね!
Startの考察
Startは一般的なゲームオブジェクトの初期化で利用します。ゲームにおけるキャラクターや背景オブジェクト、エフェクトやサウンドなどコンテンツに関わるほとんどのオブジェクトで利用する初期化イベント関数です。
Startはゲームオブジェクトの初期化で使うんだね!
まとめ
今回の記事のまとめだよ!
1. Awakeはシステムの初期化に利用する 2. OnEnableはエディター拡張で利用する 3. Startはゲームに登場する一般的なオブジェクトで利用する | ||
なるほどね!初期化関数の使い分けの参考にするよ!
あくまでも私見なので参考程度にして下さいね。今までこのように実装してきて困った記憶がないのでオススメしますよ。
関連ページ
こちらのページも合わせてご覧下さい!