public GameObject SpawnFromPool(string tag, Vector3 position, Quaternion rotation) { position = bulletSpawnPoint.transform.position; rotation = bulletSpawnPoint.transform.rotation; if (!Bullets.ContainsKey(tag)) { Debug.LogWarning("Pool with tag " + tag + " Does not exsit"); return(null); } // Debug.Log (System.Environment.StackTrace); GameObject objToSpawn = Bullets[tag].Dequeue(); objToSpawn.SetActive(true); objToSpawn.transform.position = position; objToSpawn.transform.rotation = rotation; IPooledObjects pooledObjects = objToSpawn.GetComponent <IPooledObjects>(); if (pooledObjects != null) { pooledObjects.onPooledObject(); } Bullets[tag].Enqueue(objToSpawn); return(objToSpawn); }
public GameObject SpawnFromPool(string tag, Vector3 position, Quaternion rotation) { if (!poolDictionary.ContainsKey(tag)) { Debug.Log("Pool with tag" + tag + " doesnt exist"); return(null); } GameObject objToSpawn = poolDictionary[tag].Dequeue(); objToSpawn.SetActive(true); objToSpawn.transform.position = position; objToSpawn.transform.rotation = rotation; IPooledObjects pooledObj = objToSpawn.GetComponent <IPooledObjects>(); if (pooledObj != null) { pooledObj.OnObjectSpawn(); } poolDictionary[tag].Enqueue(objToSpawn); return(objToSpawn); }