示例#1
0
    public GameObject SpawnFromPool(string tag, Vector3 position, Quaternion rotation)
    {
        if (!poolDict.ContainsKey(tag))
        {
            Debug.LogWarning("Pool with tag " + tag + " doesn't exist.");
            return(null);
        }

        GameObject objToSpawn = poolDict[tag].Dequeue();

        objToSpawn.SetActive(true);
        objToSpawn.transform.position = position;
        objToSpawn.transform.rotation = rotation;

        IPooledObj IPool = objToSpawn.GetComponent <IPooledObj>();

        if (IPool != null)
        {
            IPool.OnObjectSpawn();
        }

        poolDict[tag].Enqueue(objToSpawn);

        return(objToSpawn);
    }
示例#2
0
    public GameObject SpawnPoolObject(string name, Vector3 position, Quaternion quaternion)
    {
        if (!PoolDictionary.ContainsKey(name))
        {
            Debug.Log($"Key {name} doesn't exist in {PoolDictionary} ");
            return(null);
        }
        GameObject spawnGM = PoolDictionary[name].Dequeue();

        spawnGM.SetActive(true);
        spawnGM.transform.position = position;
        spawnGM.transform.rotation = quaternion;

        IPooledObj pooledObj = spawnGM.GetComponent <IPooledObj>();

        if (pooledObj != null)
        {
            pooledObj.OnObjectSpawn();
        }


        PoolDictionary[name].Enqueue(spawnGM);

        return(spawnGM);
    }
示例#3
0
    public GameObject PoolSpawner(string tag, Vector3 pos, Quaternion rotation)
    {
        if (!poolDic.ContainsKey(tag))
        {
            Debug.LogWarning("This poool doesnt exist");
            return(null);
        }
        GameObject objToSpawn = poolDic[tag].Dequeue();

        objToSpawn.SetActive(true);
        objToSpawn.transform.position = pos;
        objToSpawn.transform.rotation = rotation;

        IPooledObj pooledObj = objToSpawn.GetComponent <IPooledObj>();

        if (pooledObj != null)
        {
            pooledObj.SpawnObject();
        }

        poolDic[tag].Enqueue(objToSpawn);

        return(objToSpawn);
    }