やまめも

【 ゲーム開発・日々のことについて 】

【Unity】シングルトーン : 使用例 第一弾

シングルトーン使用例1

public class AudioManager : MonoBehaviour {
	public static AudioManager instance = null;
	void Awake(){
		if (instance == null) {
			instance = this;
		}
	}
}

// 他のスクリプトで呼び出すとき
AudioManager.instance.MusicBackground.clip = AudioSourceScript.instance.AudioQuestion;
AudioManager.instance.MusicBackground.pitch = 1f;

シングルトーンを用いないものに関しては、グローバル変数としてスクリプト型の変数を定義し、publicであればインスペクター上から、privateであればAwakeでGetComponentでスクリプトを確保する。

参考資料


シングルトーン使用例2

public class AdsManager : MonoBehaviour {
	private static AdsManager _instance;
	public static AdsManager Instance {
		get { 
			if (_instance == null) {
				//アクティブのオブジェクトを探す
				_instance = FindObjectOfType<AdsManager>();
				if (_instance == null) {
					//もしなければ、生成する。
					_instance = new GameObject("Ads Manager").AddComponent<AdsManager>();
				}
			}
			return _instance;
		}
	}
}

参考資料