static public void DoCreateInstance_Force(CLASS_SingletoneTarget pSingletonInstance) { _instance = pSingletonInstance; bool bIsGenearteGameObject; _instance.OnMakeSingleton(out bIsGenearteGameObject, out _bIsUpdateAble); if (bIsGenearteGameObject) { System.Type pTypeDriven = typeof(CLASS_SingletoneTarget); _instance.gameObject = new GameObject(pTypeDriven.GetFriendlyName()); _instance.transform = _instance.gameObject.transform; CCompoEventTrigger_OnDisable pOnDisable = _instance.gameObject.AddComponent <CCompoEventTrigger_OnDisable>(); pOnDisable.p_Event_OnDisable += _instance.OnDisable_p_Event_OnDisable; SceneManager.sceneUnloaded += _instance.OnSceneUnloaded; _instance.OnMakeGameObject(_instance.gameObject); } if (_bIsUpdateAble && CManagerUpdateObject.instance) { CManagerUpdateObject.instance.DoAddObject(_instance, true); } }
/* protected - [abstract & virtual] */ // ========================================================================== // #region Private private void OnPopComponent(Class_GetType pUnUsed) { CCompoEventTrigger_OnDisable pEventTrigger_AutoReturn = pUnUsed.GetComponent <CCompoEventTrigger_OnDisable>(); if (pEventTrigger_AutoReturn != null) { pEventTrigger_AutoReturn.p_Event_OnDisable -= DoPush; pEventTrigger_AutoReturn.p_Event_OnDisable += DoPush; } }
// ========================================================================== // /* protected - Override & Unity API */ protected override Class_GetType OnCreateClass_WhenEmptyPool(Class_GetType pObjectCopyTarget, int iID) { GameObject pObjectUnUsed = Instantiate(pObjectCopyTarget.gameObject); pObjectUnUsed.name = string.Format("{0}_{1}", pObjectCopyTarget.name, _mapUnUsed[iID].Count + _mapUsed[iID].Count); pObjectUnUsed.transform.SetParent(transform); CCompoEventTrigger_OnDisable pEventTrigger = pObjectUnUsed.AddComponent <CCompoEventTrigger_OnDisable>(); pEventTrigger.p_Event_OnDestroy += Event_RemovePoolObject; Class_GetType pComponentUnUsed = pObjectUnUsed.GetComponent <Class_GetType>(); if (pComponentUnUsed == null) { Debug.LogError(name + " 풀링 매니져 에러 - pComponentNew == null, Origin Object : " + pObjectCopyTarget.name, pObjectCopyTarget); } return(pComponentUnUsed); }