public static GameObject Spawn(GameObject original, Vector3 position, Quaternion rotation) { if (original == null) { Debug.LogWarning("Tried to instantiate a null object."); return(null); } Queue <GameObject> pool = _instance.GetPool(original); if (pool.Count == 0) { GameObject obj = GameObject.Instantiate(original, position, rotation) as GameObject; obj.transform.parent = _instance._containerActive; return(obj); } else { GameObject obj = pool.Dequeue(); if (obj != null) { obj.transform.position = position; obj.transform.rotation = rotation; obj.transform.parent = _instance._containerActive; obj.SetActive(true); } else { Debug.LogWarning(string.Format("We had a null object in our queue. ({0:s})", original.name)); } return(obj); } }