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