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);
        }