// 유틸 : 객체 초기화 static void Initialize(T pInstance) { if (null == pInstance) { return; } // 싱글턴 생성시 Awake에서 호출되고, Instance에서 호출되므로 같으면 무시 if ((null != m_pInstance) && (m_pInstance == pInstance)) { return; } // 인스턴스 중복체크 T pDuplication = SHGameObject.GetDuplication(pInstance); if (null != pDuplication) { m_pInstance = pDuplication; SHGameObject.DestoryObject(pInstance.gameObject); return; } m_pInstance = pInstance; m_pInstance.SetParent("SHSingletons(Destroy)"); m_pInstance.OnInitialize(); }
void DestroyPanel(SHUIBasePanel pPanel) { if (null == pPanel) { return; } SHGameObject.DestoryObject(pPanel); }
// 인터페이스 : 명시적으로 싱글턴 제거 public void DoDestroy() { SHGameObject.DestoryObject(gameObject); }
// 후처리 static void PostProcessor() { SHGameObject.DestoryObject(GameObject.Find("SHSingletons(Destroy)")); SHGameObject.DestoryObject(GameObject.Find("SHSingletons(DontDestroy)")); }