Managers class 구현
static Managers s_Instance; // 유일성이 보장됨
// property 형식
static public Managers Instance
{
get
{
Init();
return s_Instance;
}
} // 유일하게 만들어놓은 매니저를 가지고 옴.
static void Init()
{
// 아래 과정을 통해서 단 하나의 @managers의 managers 컴포넌트만 Instance에 부여된다.
// & 호출되었을 때 null이면 새로 생성해서 할당해준다.
if (s_Instance == null)
{
GameObject go = GameObject.Find("@Managers");
if (go == null)
{
go = new GameObject { name = "@Managers" };
go.AddComponent<Managers>();
}
DontDestroyOnLoad(go);
s_Instance = go.GetComponent<Managers>();
}
}
설명
- 프로그램에 하나의 Manager Instance만 생성되도록 하는 것.
- 동작순서
- manager instance 호출
- get() method 실행
- init()을 통해서 ‘managers GameObject 생성’ or ‘Managers GameObject를 할당’
- Managers.s_Instance에 Managers component 할당
- return s_Instance, 즉 Managers 오브젝트의 Managers 컴포넌트의 Instance를 전달함.
댓글남기기