/// <summary> /// Spawns an object from specified pool /// </summary> /// <param name="prefab">Pool name</param> /// <param name="pos">Target position</param> /// <param name="rot">Target rotation</param> /// <returns></returns> public static GameObject Spawn(GameObject prefab, Vector3 pos, Quaternion rot) { QuickPool targetPool = ObjectsPool.Instance.pools.Where(pool => pool.Prefab == prefab).FirstOrDefault(); if (targetPool == null) { return(null); } GameObject obj = targetPool.GetItem(); if (obj == null) { return(null); } obj.transform.position = pos; obj.transform.rotation = rot; if (ObjectsPool.Instance.spawnDespawnMessages) { obj.SendMessage("OnSpawn", SendMessageOptions.DontRequireReceiver); } return(obj); }
/// <summary> /// Spawns an object from specified pool /// </summary> /// <param name="name">Pool name</param> /// <param name="pos">Target position</param> /// <param name="rot">Target rotation</param> /// <returns></returns> public static GameObject Spawn(string name, Vector3 pos, Quaternion rot) { QuickPool targetPool = ObjectsPool.Instance.pools.Where(pool => pool.poolName == name).FirstOrDefault(); if (targetPool == null) { return(null); } GameObject obj = targetPool.GetItem(); if (obj == null) { if (ObjectsPool.Instance.debugMessages) { Debug.Log("No such object left"); } return(null); } obj.SetActive(true); obj.transform.position = pos; obj.transform.rotation = rot; if (ObjectsPool.Instance.spawnDespawnMessages) { obj.SendMessage("OnSpawn", SendMessageOptions.DontRequireReceiver); } return(obj); }