public IEnumerator 풀링_기본테스트() { CManagerPooling <ETestPoolingObjectName, TestPoolingObject> pPoolingManager = InitGeneratePoolingTest(); Assert.AreEqual(0, TestPoolingObject.g_mapActiveCount[ETestPoolingObjectName.Test1]); Assert.AreEqual(0, TestPoolingObject.g_mapActiveCount[ETestPoolingObjectName.Test2]); List <GameObject> listObjectPooling = new List <GameObject>(); for (int i = 0; i < 10; i++) { listObjectPooling.Add(pPoolingManager.DoPop(ETestPoolingObjectName.Test1).gameObject); } Assert.AreEqual(10, TestPoolingObject.g_mapActiveCount[ETestPoolingObjectName.Test1]); for (int i = 0; i < 10; i++) { pPoolingManager.DoPush(listObjectPooling[i].GetComponent <TestPoolingObject>()); } Assert.AreEqual(0, TestPoolingObject.g_mapActiveCount[ETestPoolingObjectName.Test1]); listObjectPooling.Clear(); for (int i = 0; i < 5; i++) { listObjectPooling.Add(pPoolingManager.DoPop(ETestPoolingObjectName.Test2).gameObject); } Assert.AreEqual(5, TestPoolingObject.g_mapActiveCount[ETestPoolingObjectName.Test2]); pPoolingManager.DoPushAll(); Assert.AreEqual(0, TestPoolingObject.g_mapActiveCount[ETestPoolingObjectName.Test2]); yield break; }
/* protected - Override & Unity API */ protected override void OnAwake() { base.OnAwake(); _pManagerPool_LabelIndicator = CManagerPooling <ELabelIndicator, CResource_NGUILabelIndicator> .instance; _pTrans_Manager = _pManagerPool_LabelIndicator.p_pObjectManager.transform; _pTrans_Label = transform; UIWidget pUIWidget = GetComponent <UIWidget>(); if (pUIWidget != null) { _iLastDepth = pUIWidget.depth + 1; } else { pUIWidget = GetComponentInParent <UIWidget>(); if (pUIWidget != null) { _iLastDepth = pUIWidget.depth + 1; } } _sInfoIndicator.v2Direction = ProcGetEnumToDirection(p_eDirection); _sInfoIndicator.iFontSize = p_iFontSize; _sInfoIndicator.pColor = p_sColorIndicator; _sInfoIndicator.fDistance = p_fDistance; _sInfoIndicator.fDuration = p_fDuration; _sInfoIndicator.fFadeDelay = p_fFadeDelay; _sInfoIndicator.fFadeDuration = p_fFadeDuration; _sInfoIndicator.OnDisable = OnPushResource_LabelIndicator; }
/* public - [Event] Function * 프랜드 객체가 호출 */ // ========================================================================== // /* protected - [abstract & virtual] */ /* protected - [Event] Function * 자식 객체가 호출 */ /* protected - Override & Unity API */ protected override void OnAwake() { base.OnAwake(); _pManagerPooling = CManagerPooling <string, CEffect> .instance; _pManagerPooling.DoInitPoolingObject("Effect"); _pManagerPooling.p_EVENT_OnPopResource += _pManagerPooling_p_EVENT_OnPopResource; }
// Use this for initialization void Start() { _pManagerPool_Bullet = CManagerPooling <Pooling_BulletTest.ProjectileModel, Pooling_BulletTest> .instance; _pManagerPool_Bullet.p_EVENT_OnMakeResource += _pManagerPool_Bullet_p_EVENT_OnMakeResource; _pManagerPool_Bullet.p_EVENT_OnPopResource += _pManagerPool_Bullet_p_EVENT_OnPopResource; _pManagerPool_Bullet.DoStartPooling(new List <Pooling_BulletTest.ProjectileModel>() { Pooling_BulletTest.ProjectileModel.Model_Projectile_Blue }, 10); }
public IEnumerator 풀링_이벤트테스트() { g_mapMakeCount = new Dictionary <ETestPoolingObjectName, int>() { { ETestPoolingObjectName.Test3, 0 } }; g_mapPopCount = new Dictionary <ETestPoolingObjectName, int>() { { ETestPoolingObjectName.Test3, 0 } }; g_mapPushCount = new Dictionary <ETestPoolingObjectName, int>() { { ETestPoolingObjectName.Test3, 0 } }; CManagerPooling <ETestPoolingObjectName, TestPoolingObject> pPoolingManager = InitGeneratePoolingTest(); pPoolingManager.p_EVENT_OnMakeResource += PPoolingManager_p_EVENT_OnMakeResource; pPoolingManager.p_EVENT_OnPopResource += PPoolingManager_p_EVENT_OnPopResource; pPoolingManager.p_EVENT_OnPushResource += PPoolingManager_p_EVENT_OnPushResource; int iTotalMakeCount = Random.Range(15, 50); for (int i = 0; i < iTotalMakeCount; i++) { pPoolingManager.DoPop(ETestPoolingObjectName.Test3); } Assert.AreEqual(g_mapMakeCount[ETestPoolingObjectName.Test3], iTotalMakeCount); Assert.AreEqual(g_mapPopCount[ETestPoolingObjectName.Test3], iTotalMakeCount); Assert.AreEqual(g_mapPushCount[ETestPoolingObjectName.Test3], 0); pPoolingManager.DoPushAll(); Assert.AreEqual(g_mapMakeCount[ETestPoolingObjectName.Test3], iTotalMakeCount); Assert.AreEqual(g_mapPopCount[ETestPoolingObjectName.Test3], iTotalMakeCount); Assert.AreEqual(g_mapPushCount[ETestPoolingObjectName.Test3], iTotalMakeCount); for (int i = 0; i < iTotalMakeCount; i++) { pPoolingManager.DoPop(ETestPoolingObjectName.Test3); } Assert.AreEqual(g_mapMakeCount[ETestPoolingObjectName.Test3], iTotalMakeCount); Assert.AreEqual(g_mapPopCount[ETestPoolingObjectName.Test3], iTotalMakeCount * 2); Assert.AreEqual(g_mapPushCount[ETestPoolingObjectName.Test3], iTotalMakeCount); pPoolingManager.DoPushAll(); Assert.AreEqual(g_mapMakeCount[ETestPoolingObjectName.Test3], iTotalMakeCount); Assert.AreEqual(g_mapPopCount[ETestPoolingObjectName.Test3], iTotalMakeCount * 2); Assert.AreEqual(g_mapPushCount[ETestPoolingObjectName.Test3], iTotalMakeCount * 2); yield break; }
/* public - [Event] Function * 프랜드 객체가 호출(For Friend class call)*/ // ========================================================================== // #region Protected /* protected - [abstract & virtual] */ /* protected - [Event] Function * 자식 객체가 호출(For Child class call) */ /* protected - Override & Unity API */ protected override void OnAwake() { base.OnAwake(); GetComponentsInChildren(_listScrollObject_Origin); if (_listScrollObject_Origin.Count == 0) { Debug.Log(name + "_listScrollObject.Count == 0", this); enabled = false; return; } List <GameObject> listObject = new List <GameObject>(); for (int i = 0; i < _listScrollObject_Origin.Count; i++) { if (_listScrollObject_Origin[i].p_fWidth == 0f) { Debug.LogWarning(name + "Scroll Object의 Width는 0이 될 수 없습니다. 해당 Scroll Object : " + _listScrollObject_Origin[i].name, _listScrollObject_Origin[i]); gameObject.SetActive(false); return; } listObject.Add(_listScrollObject_Origin[i].gameObject); } int iInstanceID = GetInstanceID(); CManagerRandomTable <CScrollObject> .instance[iInstanceID].DoClearRandomItemTable(); CManagerRandomTable <CScrollObject> .instance[iInstanceID].DoAddRandomItem_Range(_listScrollObject_Origin); CManagerPooling <string, CScrollObject> .DoInitPoolingObject(listObject); CManagerPooling <string, CScrollObject> .instance.DoStartPooling(p_iPoolingCount, _pTransformCached); for (int i = 0; i < _listScrollObject_Origin.Count; i++) { _listScrollObject_Origin[i].SetActive(false); } if (p_pTransTarget != null) { _fTargetPos_Origin = p_pTransTarget.position.x; } _fOriginPosX = _pTransformCached.position.x; }
static public void DoSetParents_ManagerObject(Transform pTransformParents) { CManagerPooling <ENUM_Resource_Name, Class_Resource> pManagerCurrent = instance; if (_pTransManager == null) { _bIsInit = false; _bIsDestroy = false; pManagerCurrent = instance; pManagerCurrent.OnMakeSingleton(); } _pTransManager.SetParent(pTransformParents); _pTransManager.DoResetTransform(); if (_queuePoolingDisable.Count != 0) { var listOrigin = _mapResourceOriginCopy.Values.ToList(); for (int i = 0; i < listOrigin.Count; i++) { listOrigin[i].transform.DoResetTransform(); } } }
private CManagerPooling <ETestPoolingObjectName, TestPoolingObject> InitGeneratePoolingTest() { TestPoolingObject.g_mapActiveCount = new Dictionary <ETestPoolingObjectName, int>() { { ETestPoolingObjectName.Test1, 0 }, { ETestPoolingObjectName.Test2, 0 }, { ETestPoolingObjectName.Test3, 0 } }; List <GameObject> listObjectPooling = new List <GameObject>(); for (int i = 0; i < 3; i++) { ETestPoolingObjectName eTest = (ETestPoolingObjectName)i; GameObject pObjectOrigin_Test = new GameObject(eTest.ToString()); pObjectOrigin_Test.gameObject.SetActive(false); pObjectOrigin_Test.AddComponent <TestPoolingObject>().eTestType = eTest; listObjectPooling.Add(pObjectOrigin_Test.gameObject); } CManagerPooling <ETestPoolingObjectName, TestPoolingObject> pPoolingManager = CManagerPooling <ETestPoolingObjectName, TestPoolingObject> .instance; pPoolingManager.DoInitPoolingObject(listObjectPooling); return(pPoolingManager); }
/* protected - [Event] Function * 자식 객체가 호출(For Child class call) */ /* protected - Override & Unity API */ protected override void OnAwake() { base.OnAwake(); _pManagerPool = CManagerPooling <Enum_Key, Class_Resource> .instance; }
// ========================================================================== // /* public - [Do] Function * 외부 객체가 호출(For External class call)*/ static public void DoClearPoolingObject() { CManagerPooling <string, CScrollObject> .DoClearPoolingObject(); }