public T Get()
        {
            T component;

            if (PoolObjs.Count > 0)
            {
                component = PoolObjs[0];
                PoolObjs.RemoveAt(0);

                component.Reinstantiate();
            }
            else
            {
                if (Prefab == null)
                {
                    component = InstantiateFunc.Invoke();
                }
                else
                {
                    component = GameObject.Instantiate(Prefab);
                }

                component.Instantiate();
            }

            AliveObjs.Add(component);

            return(component);
        }
        public GameObject Get()
        {
            GameObject obj;

            if (PoolObjs.Count > 0)
            {
                obj = PoolObjs[0];
                PoolObjs.RemoveAt(0);
            }
            else
            {
                if (Prefab == null)
                {
                    obj = InstantiateFunc.Invoke();
                }
                else
                {
                    obj = GameObject.Instantiate(Prefab);
                }
            }

            AliveObjs.Add(obj);
            obj.SetActive(true);

            return(obj);
        }
 public void ClearPoolObjs()
 {
     while (PoolObjs.Count > 0)
     {
         GameObject.Destroy(PoolObjs[0]);
         PoolObjs.RemoveAt(0);
     }
 }