private CManagerPooling_InResources <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_InResources <ETestPoolingObjectName, TestPoolingObject> pPoolingManager = CManagerPooling_InResources <ETestPoolingObjectName, TestPoolingObject> .instance; pPoolingManager.DoInitPoolingObject(listObjectPooling); pPoolingManager.p_EVENT_OnMakeResource -= PPoolingManager_p_EVENT_OnMakeResource; pPoolingManager.p_EVENT_OnPopResource -= PPoolingManager_p_EVENT_OnPopResource; pPoolingManager.p_EVENT_OnPushResource -= PPoolingManager_p_EVENT_OnPushResource; return(pPoolingManager); }
public IEnumerator Working_Test() { // 풀링 매니져를 Init합니다. CManagerPooling_InResources <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; }
/* public - [Event] Function * 프랜드 객체가 호출 */ // ========================================================================== // /* protected - [abstract & virtual] */ /* protected - [Event] Function * 자식 객체가 호출 */ /* protected - Override & Unity API */ protected override void OnAwake() { base.OnAwake(); _pManagerPooling = CManagerPooling_InResources <string, CEffect> .instance; _pManagerPooling.DoInitPoolingObject("Effect"); _pManagerPooling.p_EVENT_OnPopResource += _pManagerPooling_p_EVENT_OnPopResource; }
public IEnumerator Event_Test() { 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_InResources <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; }
void Start() { _pManagerPool_Bullet = CManagerPooling_InResources <Pooling_BulletTest.ProjectileModel, Pooling_BulletTest> .instance; _pManagerPool_Bullet.DoInitPoolingObject("PoolingTest_Bullet"); _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.Blue, Pooling_BulletTest.ProjectileModel.Red }, 10); }