protected override void OnInitClass(CLASS_POOL_TARGET pObject_Original, CLASS_POOL_TARGET pObject_InPool, int iID) { #if UNITY_EDITOR pObject_InPool.name = string.Format("{0}_{1}", pObject_Original.name, _mapUnUsed[iID].Count + _mapUsed[iID].Count); // pObject_InPool.transform.SetParent(transform); #endif EventTrigger_OnDisable pEventTrigger = pObject_InPool.GetComponent <EventTrigger_OnDisable>(); if (pEventTrigger == null) { pEventTrigger = pObject_InPool.gameObject.AddComponent <EventTrigger_OnDisable>(); } pEventTrigger.OnDestroyObject -= Event_RemovePoolObject; pEventTrigger.OnDestroyObject += Event_RemovePoolObject; }
/// <summary> /// 풀링에 있는 오브젝트를 꺼냅니다. 리턴되는 <see cref="GameObject"/> Active는 true입니다. /// </summary> /// <param name="pObjectCopyTarget">풀링할 오브젝트 원본</param> /// <param name="vecWorldPos">배치할 WorldPosition</param> public CLASS_POOL_TARGET DoPop(CLASS_POOL_TARGET pObjectCopyTarget, Vector3 vecWorldPos, bool bUseAutoReturn_OnDisable = true) { CLASS_POOL_TARGET pUnUsed = base.DoPop(pObjectCopyTarget); pUnUsed.transform.position = vecWorldPos; EventTrigger_OnDisable pEventTrigger_AutoReturn = pUnUsed.GetComponent <EventTrigger_OnDisable>(); if (pEventTrigger_AutoReturn != null) { pEventTrigger_AutoReturn.OnDisableObject -= DoPush; if (bUseAutoReturn_OnDisable) { pEventTrigger_AutoReturn.OnDisableObject += DoPush; } } return(pUnUsed); }