QA@IT
«回答へ戻る

回答を投稿

自分はこんな感じでやってます

public class Hoge : MonoBehaviour {
static Hoge instance;
public static Hoge GetInstance(){
return instance;
}
void Awake(){
instance = this;
}
}

UnityのMonoBehaviour を継承したクラスは、コンポーネントというUnityのGameObjectにアタッチするための特殊クラスになります。
コンポーネントは、アタッチしたGameObjectが作成されるまでは初期化されないため、本来シングルトンとちがい、アクセスするタイミングに制限がでてくることになります。
void Awake() は、GameObjectが作成されたときに呼ばれるUnity標準のメソッドです。
ただし、Awake()はGameObjectのenableがfalse(オブジェクトのインスペクター左上のチェックボックスがOFF)だと呼び出されないため、注意してください。

自分はこんな感じでやってます

public class Hoge : MonoBehaviour {
	static Hoge instance;
	public static Hoge GetInstance(){
		return instance;
	}
	void Awake(){
		instance = this;
	}
}

UnityのMonoBehaviour を継承したクラスは、コンポーネントというUnityのGameObjectにアタッチするための特殊クラスになります。
コンポーネントは、アタッチしたGameObjectが作成されるまでは初期化されないため、本来シングルトンとちがい、アクセスするタイミングに制限がでてくることになります。
void Awake() は、GameObjectが作成されたときに呼ばれるUnity標準のメソッドです。
ただし、Awake()はGameObjectのenableがfalse(オブジェクトのインスペクター左上のチェックボックスがOFF)だと呼び出されないため、注意してください。