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);
    }
Esempio n. 2
0
    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);
    }
Esempio n. 4
0
    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);
    }
Esempio n. 5
0
    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);
    }