public void ReturnObject2Pool(GameObject myclone)
        {
            if (myclone == null)
            {
                return;
            }
            //myclone.transform.SetParent(null);
            PoolingGameObjectRemote remote = myclone.GetComponent <PoolingGameObjectRemote>();

            remote?.OnEnterPool();
            set.Enqueue(myclone);
            myclone.SetActive(false);
        }
 public GameObject GetOne()
 {
     if (set.Count >= 1)
     {
         GameObject result = set.Dequeue();
         if (result != null)
         {
             PoolingGameObjectRemote remote = result.GetComponent <PoolingGameObjectRemote>();
             remote?.OnExitPool();
             return(result);
         }
         return(GetOne());
     }
     else
     {
         InitSize(2);
         return(GetOne());
     }
 }