// Destroy and Clean void PoolKill(PoolerData data) { for (int i = 0; i < data.pool.Count; i++) { Destroy(data.pool[i]); } data.pool.Clear(); }
// Create, Store and Hide void PoolInit(PoolerData data) { for (int i = 0; i < poolerObjLimit; i++) { instance = Instantiate(data.prefab, Vector3.zero, data.prefab.transform.rotation) as GameObject; instance.transform.parent = transform; Debug.Log("Parent of " + instance.gameObject.name + " = " + instance.transform.parent.gameObject.name); data.pool.Add(instance);//adding to the array instance.SetActive(false); } }
// Get a specific type of pooled object public GameObject GetPooledObject(int ID) { polledInst = null; pooler=PoolHolder[ID]; for (int i = 0; i < pooler.pool.Count; i++) { if(!pooler.pool[i].activeInHierarchy) { polledInst = pooler.pool[i]; //polledInst.SetActive(true); return polledInst; } } if (pooler.canGrow) { instance=Instantiate(pooler.prefab, Vector3.zero, Quaternion.identity) as GameObject; instance.transform.parent = this.gameObject.transform; pooler.pool.Add(instance); //instance.SetActive(true); return instance; } return null; }
// Get a specific type of pooled object public GameObject GetPooledObject(int ID) { polledInst = null; pooler = PoolHolder[ID]; for (int i = 0; i < pooler.pool.Count; i++) { if (!pooler.pool[i].activeSelf) { polledInst = pooler.pool[i]; //polledInst.SetActive(true); return(polledInst); } } if (pooler.canGrow) { instance = Instantiate(pooler.prefab, Vector3.zero, pooler.prefab.transform.rotation) as GameObject; instance.transform.parent = this.gameObject.transform; pooler.pool.Add(instance); //instance.SetActive(true); return(instance); } return(null); }
// Create, Store and Hide void PoolInit(PoolerData data) { for (int i = 0; i < data.cloneLimit; i++) { instance=Instantiate(data.prefab, Vector3.zero, Quaternion.identity) as GameObject; instance.transform.parent = transform; data.pool.Add(instance); instance.SetActive(false); } }