public void WorkingTest() { // Assert PoolingManager_Component <TestPoolingObject> pPoolingManager = PoolingManager_Component <TestPoolingObject> .instance; pPoolingManager.DoDestroyAll(); Dictionary <ETestPoolingObjectName, TestPoolingObject> mapObjectInstance = InitTest(); Assert.AreEqual(0, TestPoolingObject.GetActiveCount(ETestPoolingObjectName.Test1)); Assert.AreEqual(0, TestPoolingObject.GetActiveCount(ETestPoolingObjectName.Test2)); // Test1 List <TestPoolingObject> listObjectPooling = new List <TestPoolingObject>(); for (int i = 0; i < 10; i++) { listObjectPooling.Add(pPoolingManager.DoPop(mapObjectInstance[ETestPoolingObjectName.Test1])); } Assert.AreEqual(10, TestPoolingObject.GetActiveCount(ETestPoolingObjectName.Test1)); Assert.AreEqual(0, TestPoolingObject.GetActiveCount(ETestPoolingObjectName.Test2)); for (int i = 0; i < listObjectPooling.Count; i++) { pPoolingManager.DoPush(listObjectPooling[i]); } Assert.AreEqual(0, TestPoolingObject.GetActiveCount(ETestPoolingObjectName.Test1)); Assert.AreEqual(0, TestPoolingObject.GetActiveCount(ETestPoolingObjectName.Test2)); // Test2 listObjectPooling.Clear(); for (int i = 0; i < 5; i++) { listObjectPooling.Add(pPoolingManager.DoPop(mapObjectInstance[ETestPoolingObjectName.Test2])); } // Active Check for (int i = 0; i < listObjectPooling.Count; i++) { Assert.AreEqual(true, listObjectPooling[i].gameObject.activeSelf); } Assert.AreEqual(5, TestPoolingObject.GetActiveCount(ETestPoolingObjectName.Test2)); for (int i = 0; i < listObjectPooling.Count; i++) { pPoolingManager.DoPush(listObjectPooling[i]); } // Active Check - 리턴했기 때문에 False for (int i = 0; i < listObjectPooling.Count; i++) { Assert.AreEqual(false, listObjectPooling[i].gameObject.activeSelf); } Assert.AreEqual(0, TestPoolingObject.GetActiveCount(ETestPoolingObjectName.Test2)); }
public void 미리생성된_오브젝트를_풀에넣고_테스트() { // Assert PoolingManager_Component <TestPoolingObject> pPoolingManager = PoolingManager_Component <TestPoolingObject> .instance; pPoolingManager.DoDestroyAll(); Dictionary <ETestPoolingObjectName, TestPoolingObject> mapObjectInstance = InitTest(); Assert.AreEqual(0, TestPoolingObject.GetActiveCount(ETestPoolingObjectName.Test1)); Assert.AreEqual(0, TestPoolingObject.GetActiveCount(ETestPoolingObjectName.Test2)); // Act // 게임 오브젝트를 Instantiate를 통해 생성합니다. List <TestPoolingObject> listObject = new List <TestPoolingObject>(); for (int i = 0; i < 10; i++) { listObject.Add(GameObject.Instantiate(mapObjectInstance[ETestPoolingObjectName.Test1])); } // 생성한 것을 풀에 넣습니다 pPoolingManager.DoAdd_PoolObject(mapObjectInstance[ETestPoolingObjectName.Test1], listObject); Assert.AreEqual(0, TestPoolingObject.GetActiveCount(ETestPoolingObjectName.Test1)); Assert.AreEqual(listObject.Count, pPoolingManager.iInstanceCount); // Assert for (int i = 0; i < listObject.Count; i++) { pPoolingManager.DoPop(mapObjectInstance[ETestPoolingObjectName.Test1]); } Assert.AreEqual(listObject.Count, TestPoolingObject.GetActiveCount(ETestPoolingObjectName.Test1)); Assert.AreEqual(listObject.Count, pPoolingManager.iUseCount); Assert.AreEqual(listObject.Count, pPoolingManager.iInstanceCount); pPoolingManager.DoPushAll(); Assert.AreEqual(pPoolingManager.iUseCount, 0); Assert.AreEqual(TestPoolingObject.GetActiveCount(ETestPoolingObjectName.Test1), 0); // 풀에 있는 인스턴스보다 더 많이 얻어와봄 { int iCount = listObject.Count * 2; for (int i = 0; i < iCount; i++) { pPoolingManager.DoPop(mapObjectInstance[ETestPoolingObjectName.Test1]); } Assert.AreEqual(iCount, TestPoolingObject.GetActiveCount(ETestPoolingObjectName.Test1)); Assert.AreEqual(iCount, pPoolingManager.iUseCount); Assert.AreEqual(iCount, pPoolingManager.iInstanceCount); } }
private TCONTAINED_CLASS GenerateObject(Transform pTransformParents) { if (pTransformParents == null) { pTransformParents = _pTransformParents; } TCONTAINED_CLASS pItemInstance = _pPool.DoPop(_pContainObject_Original, pTransformParents, false); Transform pTransform = pItemInstance.transform; pTransform.SetAsLastSibling(); pTransform.localPosition = Vector3.zero; pTransform.localScale = Vector3.one; listActivateItem.Add(pItemInstance); return(pItemInstance); }