Example #1
0
 public void DestroyPool()
 {
     while (mPool.Count > 0)
     {
         PooledObjectInstance obj = mPool.Dequeue();
         obj.DestroyInstance();
     }
     mPool.Clear();
 }
Example #2
0
 public void ResetPool(ResetCriteria resetCriteria)
 {
     for (int i = 0; i < mPool.Count; i++)
     {
         PooledObjectInstance inst = mPool.DequeueAndEnqueueToBack();
         if (resetCriteria(inst.Instance))
         {
             inst.Instance.SetActive(false);
         }
     }
 }
Example #3
0
            private GameObject Spawn(System.Action <PooledObjectInstance> spawnAction, EFetchType type)
            {
                PooledObjectInstance obj = Fetch(type);

                if (obj == null)
                {
                    return(null);
                }

                spawnAction(obj);
                return(obj.Instance);
            }
Example #4
0
            private PooledObjectInstance FetchOnlyInActive()
            {
                for (int i = 0; i < mPool.Count; i++)
                {
                    PooledObjectInstance value = mPool.DequeueAndEnqueueToBack();
                    if (!value.Instance.activeSelf)
                    {
                        return(value);
                    }
                }

                return(null);
            }
Example #5
0
 private static void ValidateInstance <T>(PooledObjectInstance obj, T msg)
 {
     Assert.IsNotNull(obj, "GamePool does not contain: " + msg);
 }