トップ > 【Unity】MonoBehaviourの初期化イベントについて考察します!
更新日 2024/2/12

【Unity】MonoBehaviourの初期化イベントについて考察します!

Unityのスクリプト(MonoBehaviour)には様々なイベント関数が用意されています。初期化イベントも複数用意されていて、それらの初期化イベントの使い分けについて考察します。

initialize event thumbnail

Unityの初期化イベントの使い分け方が分からないよお・・・

私の経験から初期化イベント関数の使い分けを簡単に紹介しますね。


初期化イベントについて

Unityの初期化イベントにはAwakeOnEnableStartの3種類あります。これらの初期化関数は以下の順序で呼ばれます。

順序初期化関数名
1.Awake
2.OnEnable
3.Start

呼ばれる順番は分かったけどどう使い分ければいいのかな?


初期化イベントの考察

ここからは初期化関数の考察になります。私見が含まれますので参考程度にご覧くださいね。

Awakeの考察

Awakeは一番最初に呼ばれる初期化関数です。最初に呼ばれるので私は外部ライブラリやシングルトンなどシステム系の初期化に使います。コンテンツに含まれるオブジェクトなどの初期化には使いません。確実に最初に初期化したいものをAwake関数で初期化します

Awakeは一番最初に呼ばれる初期化関数なんだね!

OnEnableの考察

OnEnableはAwakeの次に呼び出される初期化関数ですが、エディターのチェックボックスのオンオフによっても呼び出されます。チェックをオンにするとOnEnableが、オフにするとOnDisableが呼び出されます。このような特徴があるので私はエディターのパラメーターを利用するリソースの初期化関数として使用します。OnEnableを実装する場合は忘れずにOnDisableもセットで実装しましょう。

Event_OnEnable

OnEnableはインスペクターのチェックボックスでも呼び出されるんだね!

Startの考察

Startは一般的なゲームオブジェクトの初期化で利用します。ゲームにおけるキャラクターや背景オブジェクト、エフェクトやサウンドなどコンテンツに関わるほとんどのオブジェクトで利用する初期化イベント関数です。

Startはゲームオブジェクトの初期化で使うんだね!


まとめ

今回の記事のまとめだよ!

1. Awakeはシステムの初期化に利用する
2. OnEnableはエディター拡張で利用する
3. Startはゲームに登場する一般的なオブジェクトで利用する

なるほどね!初期化関数の使い分けの参考にするよ!

あくまでも私見なので参考程度にして下さいね。今までこのように実装してきて困った記憶がないのでオススメしますよ。


関連ページ

こちらのページも合わせてご覧下さい!

screenshot
【Unity】ゲームビューのスクリーンショットを撮る方法を紹介します!2024/2/26
resident_object
【Unity】ゲームオブジェクトを常駐化させるための方法を紹介します!2024/3/1
singleton
【Unity】シングルトンパターンを実装する方法を紹介します!2024/3/1
resource
【Unity】スクリプトからテクスチャーなどのリソースを読み込む様々な方法を紹介します!2024/2/9
json
【Unity】UnityでJSONを扱う方法を紹介します!配列のシリアライズ対応方法やディープコピーのテクニックなども紹介しますよ!2024/3/28

Copyright ©2022 - 2024 うにぉらぼ