public GameObject SpawnPool(string tagPool, Vector3 position, Quaternion rotation) { if (!poolDictionary.ContainsKey(tagPool)) { Debug.LogWarning("Dont have key pool"); return(null); } GameObject objectToSpawn = poolDictionary[tagPool].Peek(); if (objectToSpawn.activeSelf) { objectToSpawn = Instantiate(poolDictionary[tagPool].Peek(), poolDictionary[tagPool].Peek().transform.parent); } else { poolDictionary[tagPool].Dequeue(); } objectToSpawn.SetActive(true); objectToSpawn.transform.position = position; objectToSpawn.transform.rotation = rotation; IpooledObject pooledObj = objectToSpawn.GetComponent <IpooledObject>(); if (pooledObj != null) { pooledObj.OnObjectSpawn(); } poolDictionary[tagPool].Enqueue(objectToSpawn); return(objectToSpawn); }
IEnumerator PrefabShoot() { for (int i = 0; i < soVienBanRa1Luc; i++) { if (i > 1) { CalculateSpreadShotgun(); } else { CalculateSpread(); } GameObject bullet = Instantiate(ProjectilePrefab, firepos.position, firepos.rotation * randomRotation); IpooledObject pooledObject = bullet.GetComponent <IpooledObject>(); if (pooledObject != null) { pooledObject.OnObjectSpawn(); } Destroy(bullet, bulletlifetime); } if (MuzzleFlash != null) { MuzzleFlash.SetActive(true); } yield return(new WaitForSeconds(0.02f)); if (MuzzleFlash != null) { MuzzleFlash.SetActive(false); } }
public GameObject SpawnFromPool(string tag, Vector3 position, Quaternion rotation, Vector3 Scale, bool DontSpawnIfActive = false) { if (!poolDictionary.ContainsKey(tag)) { Debug.LogWarning("Pool with tag " + tag + " doesn't excist."); return(null); } GameObject objectToSpawn = poolDictionary[tag].Dequeue(); if (DontSpawnIfActive) { int Count = 0; while (objectToSpawn.activeSelf == true && Count < 200) { poolDictionary[tag].Enqueue(objectToSpawn); objectToSpawn = poolDictionary[tag].Dequeue(); Count++; } } objectToSpawn.SetActive(true); objectToSpawn.transform.position = position; objectToSpawn.transform.rotation = rotation; objectToSpawn.transform.localScale = Scale; IpooledObject pooledObj = objectToSpawn.GetComponent <IpooledObject>(); if (pooledObj != null) { pooledObj.OnObjectSpawn(); } poolDictionary[tag].Enqueue(objectToSpawn); return(objectToSpawn); }
public GameObject SpawnFromPool(string tag, Vector3 position, Quaternion rotation) { if (!poolDictionary.ContainsKey(tag)) { Debug.Log(tag + "ko co trong dick"); return(null); } GameObject objectToSpawn = poolDictionary[tag].Dequeue(); objectToSpawn.SetActive(true); objectToSpawn.transform.position = position; objectToSpawn.transform.rotation = rotation; IpooledObject pooledObject = objectToSpawn.GetComponent <IpooledObject>(); if (pooledObject != null) { pooledObject.OnObjectSpawn(); } poolDictionary[tag].Enqueue(objectToSpawn); return(objectToSpawn); }
public GameObject SpawnFromPool(string tag, Vector3 position, Quaternion rotation) { if (!poolDictionary.ContainsKey(tag)) { Debug.LogWarning("Pool with tag: " + tag + "Doesnt exist"); return(null); } GameObject objectToSpawn = poolDictionary[tag].Dequeue(); objectToSpawn.SetActive(true); objectToSpawn.transform.position = position; objectToSpawn.transform.rotation = rotation; IpooledObject pooledObj = objectToSpawn.GetComponent <IpooledObject>(); if (pooledObj != null) { pooledObj.OnObjectSpawn(); } poolDictionary[tag].Enqueue(objectToSpawn); return(objectToSpawn); }