示例#1
0
 // Destroy and Clean
 void PoolKill(PoolerData data)
 {
     for (int i = 0; i < data.pool.Count; i++)
     {
         Destroy(data.pool[i]);
     }
     data.pool.Clear();
 }
示例#2
0
 // 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);
     }
 }
示例#3
0
 // 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;
 }
示例#4
0
 // 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);
 }
示例#5
0
 // Destroy and Clean
 void PoolKill(PoolerData data)
 {
     for (int i = 0; i < data.pool.Count; i++)
     {
         Destroy(data.pool[i]);
     }
     data.pool.Clear();
 }
示例#6
0
 // 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);
     }
 }