Unity シングルトンをResourcesから自動的に作成する
今回は、シングルトンをResourcesから自動的に作成する。
シングルトンはゲーム内で一つしか作成されないもの(サウンドマネージャーなど)
に利用すると便利なもの。
クラス名を呼べば、その一つだけのオブジェクトを呼ぶことができる。
今回は、
[Unity]Generic Based Singleton for MonoBehaviours完全版(?) | ケットシーウェア
を参考に、Resourcesからプレハブをシングルトン化して呼び出す処理を書く
MonoSingletonFromResources.cs
gist.github.com
変更点はusingと以下の部分
try{ GameObject gameObject = Instantiate (Resources.Load (RESOURCES_PATH + type.Name)) as GameObject; instance = gameObject.GetComponent<T>(); gameObject.name = type.Name; }catch(ArgumentException e){ Debug.LogError ("Problem during the creation of " + typeName); }
サンプルコード
gist.github.com
gist.github.com
リソースの置き場所例
private static readonly string RESOURCES_PATH = "Prefabs/Singletons/";
結果
参考
【Unity】なんちゃらManagerクラスを作ろう(シングルトン) | naichilab - Android iOSアプリ開発メモ
C# で 実行中の クラス名 、 メソッド名 を取得する 方法
ドキュメントにないUnity独自のException - けいごのなんとか
Unity - StartCoroutineなどで、引数に渡すメソッド名をうっかり変えそびれるのを防ぐ方法 - Qiita
No hack, no work • Unity開発に関する50のTips 〜ベストプラクティス〜(翻訳)