public GameObject SpawnFromPool(string tag, Vector3 position, Quaternion rotation) { if (!poolDict.ContainsKey(tag)) { Debug.LogWarning("Pool with tag " + tag + " doesn't exist."); return(null); } GameObject objToSpawn = poolDict[tag].Dequeue(); objToSpawn.SetActive(true); objToSpawn.transform.position = position; objToSpawn.transform.rotation = rotation; IPooledObj IPool = objToSpawn.GetComponent <IPooledObj>(); if (IPool != null) { IPool.OnObjectSpawn(); } poolDict[tag].Enqueue(objToSpawn); return(objToSpawn); }
public GameObject SpawnPoolObject(string name, Vector3 position, Quaternion quaternion) { if (!PoolDictionary.ContainsKey(name)) { Debug.Log($"Key {name} doesn't exist in {PoolDictionary} "); return(null); } GameObject spawnGM = PoolDictionary[name].Dequeue(); spawnGM.SetActive(true); spawnGM.transform.position = position; spawnGM.transform.rotation = quaternion; IPooledObj pooledObj = spawnGM.GetComponent <IPooledObj>(); if (pooledObj != null) { pooledObj.OnObjectSpawn(); } PoolDictionary[name].Enqueue(spawnGM); return(spawnGM); }