public bool ComeBack(IPoolWater poolWater) { bool isSuccess = false; if (poolWater.ownerPool.Equals(this)) { (poolWater as Component).transform.parent = transform; restingWaterList.Add(poolWater); workingWaterList.Remove(poolWater); } return isSuccess; }
private void AddRestingWater(int num) { for (int i = 0; i < num; i++) { GameObject tempGO = Instantiate(prefab, transform); IPoolWater poolWater = tempGO.GetComponent<IPoolWater>(); if (poolWater != null) { poolWater.ownerPool = this; poolWater.Rest(); restingWaterList.Add(poolWater); } } }
public GameObject Borrow(Vector3 position, Quaternion rotation, Vector3 localScale, Transform parent) { if(restingWaterList.Count <= 0) AddRestingWater(increaseSize); IPoolWater poolWater = restingWaterList[0]; Transform transform = (poolWater as Component).transform; transform.position = position; transform.rotation = rotation; transform.localScale = localScale; transform.parent = parent; poolWater.Work(); workingWaterList.Add(poolWater); restingWaterList.RemoveAt(0); return transform.gameObject; }
public void ClearItems() { foreach (GameObject tempGO in scenePickUpList) { IPoolWater poolWater = tempGO.GetComponent <IPoolWater>(); if (poolWater != null) { pickUpItemPool.GiveBack(poolWater); } else { Destroy(tempGO); } } scenePickUpList.Clear(); }