「Unity」起動時に関数を呼び出してくれるAttribute
高熱でちょっと死にかけていますが今日も元気。
さて、今回は起動時のお話です。
例えば、タイトルとゲームのシーンがあって
その両方で必要なオブジェクトがあったり、
本来はタイトルシーンでセーブデータを読み込んでおかないと
ゲームシーンにデータを渡せないみたいな状況に
なったりすることってないでしょうか??
もちろんシングルトンなら
必要であるという時に生成するっていう方法はありますが、
中にはUpdateでデータの更新が必要な物なので起動時に必要だったり、
Editor限定で起動時にデバッグシーンを読み込むようにしておきたいなど……
作り的には悪手なのかもしれないですけど
個人的にはこういう時に便利なAttributeがあります。
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
これを関数の上に置くことで、起動時に呼び出す関数となります。
例えばこれで起動時にデバッグシーンを呼び出したいってなった時は……
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
static void RuntimeInitialization() {
SceneManager.LoadScene("Debug");
}
みたいな感じにしてあげるとできるかと思います。
次回はこれを使っているコードをお見せしようかと思います。