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()); } }