Unity

Unity Singleton

DoubleJK 2021. 10. 6. 10:40
728x90
public class Managers : MonoBehaviour
{
    static Managers s_instance; // 유일성이 보장
    public static Managers Instance { get { Init(); return s_instance; } } // 유일한 매니저를 갖고 온다.

    void Start()
    {
        Init();
    }

    void Update()
    {
        
    }

    static void Init()
    {       
        if (s_instance == null)
        {
            GameObject managersGo = GameObject.Find("@Managers"); 
            if (managersGo == null)
            {
                managersGo = new GameObject { name = "@Managers" };
                managersGo.AddComponent<Managers>();
            }

            DontDestroyOnLoad(managersGo);
            s_instance = managersGo.GetComponent<Managers>();
        }        
    }
}
728x90