示例#1
0
    void Awake()
    {
        if (poolQueue == null)
        {
            poolQueue = new PoolQueue <GameObject>();
        }
        else
        {
            return;
        }

        for (int j = 0; j < pool.size; j++)
        {
            GameObject obj = Instantiate(pool.prefab, gameObject.transform);
            obj.SetActive(false);

            MonoBehaviourPooledObject PooledObjectScript = obj.GetComponent <MonoBehaviourPooledObject>();

            if (PooledObjectScript != null)
            {
                PooledObjectScript.SetQueue(poolQueue);
            }

            poolQueue.Enqueue(obj);
        }

        poolQueue.poolParent = pool;
    }
 void Awake(){
     if(useAsSingleton) Instance = this;
     if(poolDictionary == null) poolDictionary = new Dictionary<string, PoolQueue<GameObject>>();
     else return;
     
     for(int i = 0; i < pools.Count; i++)
     {
         Pool pool = pools[i];
         PoolQueue<GameObject> objectPool = new PoolQueue<GameObject>();
         
         for(int j = 0;j<pool.size; j++)
         {
             GameObject obj = Instantiate(pool.prefab, gameObject.transform);
             obj.SetActive(false);
             
             MonoBehaviourPooledObject PooledObjectScript = obj.GetComponent<MonoBehaviourPooledObject>();
             
             if(PooledObjectScript != null) {
                 PooledObjectScript.SetQueue(objectPool);
             }
             
             objectPool.Enqueue(obj);
         }
         
         poolDictionary.Add(pool.tag, objectPool);
         objectPool.poolParent = pool;
     }
     
 }
示例#3
0
 public void ClearAll()
 {
     for (int i = 0; i < AllTiles.Count; i++)
     {
         MonoBehaviourPooledObject tile = AllTiles[i].GetComponent <MonoBehaviourPooledObject>();
         tile.WithdrawToPool();
     }
     AllTiles.Clear();
     RoofTiles.Clear();
 }
 GameObject CreateObjectBlank(Pool pool){
     GameObject obj = Instantiate(pool.prefab, gameObject.transform);
     obj.SetActive(false);
     
     MonoBehaviourPooledObject PooledObjectScript = obj.GetComponent<MonoBehaviourPooledObject>(); 
     
     if(PooledObjectScript != null) PooledObjectScript.SetQueue(poolDictionary[pool.tag]);
     else {
         return null;
     }
     return obj;
 
 }
示例#5
0
    GameObject CreateObjectBlankSingle()
    {
        GameObject obj = Instantiate(pool.prefab, gameObject.transform);

        obj.SetActive(false);

        MonoBehaviourPooledObject PooledObjectScript = obj.GetComponent <MonoBehaviourPooledObject>();

        if (PooledObjectScript != null)
        {
            PooledObjectScript.SetQueue(poolQueue);
        }
        else
        {
            return(null);
        }
        return(obj);
    }
示例#6
0
    GameObject CreateObjectSinlge()
    {
        GameObject obj = Instantiate(pool.prefab, gameObject.transform);

        obj.SetActive(false);

        MonoBehaviourPooledObject PooledObjectScript = obj.GetComponent <MonoBehaviourPooledObject>();

        if (PooledObjectScript != null)
        {
            PooledObjectScript.SetQueue(poolQueue);
        }
        else
        {
            Destroy(obj);
            return(null);
        }
        PooledObjectScript.WithdrawToPool();
        return(obj);
    }