Пример #1
0
    public GameObject SpawnFromPool(string tag, Vector3 position, Quaternion rotation)
    {
        position = bulletSpawnPoint.transform.position;
        rotation = bulletSpawnPoint.transform.rotation;

        if (!Bullets.ContainsKey(tag))
        {
            Debug.LogWarning("Pool with tag " + tag + " Does not exsit");
            return(null);
        }
        //	Debug.Log (System.Environment.StackTrace);
        GameObject objToSpawn = Bullets[tag].Dequeue();

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

        IPooledObjects pooledObjects = objToSpawn.GetComponent <IPooledObjects>();

        if (pooledObjects != null)
        {
            pooledObjects.onPooledObject();
        }

        Bullets[tag].Enqueue(objToSpawn);
        return(objToSpawn);
    }
Пример #2
0
    public GameObject SpawnFromPool(string tag, Vector3 position, Quaternion rotation)
    {
        if (!poolDictionary.ContainsKey(tag))
        {
            Debug.Log("Pool with tag" + tag + " doesnt exist");
            return(null);
        }

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

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

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

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

        poolDictionary[tag].Enqueue(objToSpawn);

        return(objToSpawn);
    }