public IEnumerator CreateNGetNReturnAction() { InitailizeObjectPool(); Action <GameObject> onCreate = (x) => { x.AddComponent <TestRunnerGameObject>(); }; Action <GameObject> onGet = (x) => { TestRunnerGameObject tro = x.GetComponent <TestRunnerGameObject>(); tro.TestInt = 30; }; Action <GameObject> onReturn = (x) => { TestRunnerGameObject tro = x.GetComponent <TestRunnerGameObject>(); tro.TestInt = -30; }; objectPool.OnCreate = onCreate; objectPool.OnGet = onGet; objectPool.OnReturn = onReturn; objectPool.Initialize(config.initialize_prefab, config.initialize_count); GameObject poolObject = objectPool.Get(); TestRunnerGameObject testRunnerObject = poolObject.GetComponent <TestRunnerGameObject>(); Assert.IsTrue(testRunnerObject != null); Assert.AreEqual(testRunnerObject.TestInt, 30); objectPool.Return(poolObject); Assert.AreEqual(testRunnerObject.TestInt, -30); for (int i = 0; i < config.initialize_count + 1; i++) { objectPool.Get(); } Assert.AreEqual(config.initialize_count + 1, objectPool.Count); yield return(null); }
public IEnumerator Each() { InitailizeObjectPool(); Action <GameObject> onCreate = (x) => { TestRunnerGameObject tro = x.AddComponent <TestRunnerGameObject>(); tro.TestInt = 10; }; objectPool.OnCreate = onCreate; objectPool.Initialize(config.initialize_prefab, config.initialize_count); objectPool.Get(); TestRunnerHelper.testInt = 0; objectPool.Each(x => { TestRunnerGameObject tro = x.GetComponent <TestRunnerGameObject>(); TestRunnerHelper.testInt += tro.TestInt; }); Assert.AreEqual(TestRunnerHelper.testInt, 10); TestRunnerHelper.testInt = 0; objectPool.EachForUnUse(x => { TestRunnerGameObject tro = x.GetComponent <TestRunnerGameObject>(); TestRunnerHelper.testInt += tro.TestInt; }); Assert.AreEqual(TestRunnerHelper.testInt, 20); TestRunnerHelper.testInt = 0; objectPool.EachForAll(x => { TestRunnerGameObject tro = x.GetComponent <TestRunnerGameObject>(); TestRunnerHelper.testInt += tro.TestInt; }); Assert.AreEqual(TestRunnerHelper.testInt, 30); yield return(null); }