アクアリウムの書庫

特にあれこれするわけでもなく、ただ書いてみることにしてみる。

「Unity」起動時に関数を呼び出してくれるAttribute

高熱でちょっと死にかけていますが今日も元気。

さて、今回は起動時のお話です。

例えば、タイトルとゲームのシーンがあって

その両方で必要なオブジェクトがあったり、

本来はタイトルシーンでセーブデータを読み込んでおかないと

ゲームシーンにデータを渡せないみたいな状況に

なったりすることってないでしょうか??

f:id:AI_Aquarium:20190211104411p:plain

 

もちろんシングルトンなら

必要であるという時に生成するっていう方法はありますが、

中にはUpdateでデータの更新が必要な物なので起動時に必要だったり、

Editor限定で起動時にデバッグシーンを読み込むようにしておきたいなど……

 

作り的には悪手なのかもしれないですけど

個人的にはこういう時に便利なAttributeがあります。

 

[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]

 

これを関数の上に置くことで、起動時に呼び出す関数となります。

例えばこれで起動時にデバッグシーンを呼び出したいってなった時は……

 

[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]

static void RuntimeInitialization() {

  SceneManager.LoadScene("Debug");

}

 

みたいな感じにしてあげるとできるかと思います。

次回はこれを使っているコードをお見せしようかと思います。