Unity/Unity 리서치
유니티 싱클톤(Singleton) 구현
lipnus
2022. 1. 23. 17:04
반응형
public class Singleton<T> : MonoBehaviour where T : MonoBehaviour
{
private static T instance;
public static T Instance
{
get {
if(instance == null) {
GameObject obj;
obj = GameObject.Find(typeof(T).Name);
if (obj == null) {
obj = new GameObject(typeof(T).Name);
instance = obj.AddComponent<T>();
}
else {
instance = obj.GetComponent<T>();
}
}
return instance;
}
}
public void Awake()
{
DontDestroyOnLoad(gameObject);
}
}
public class GameDataManager : Singleton<GameDataManager>, IFirebaseDataListener
{
// ...
자손 클래스에서 이런식으로 상속해서 사용
[주의할점]
자손 코드에서 Awake를 Hide해서 DontDestroyOnLoad(gameObject)가 실행되지 않게 되면 싱글톤이 제대로구현되지 않음
반응형