예제 #1
0
    public GameObject SpawnFromPool(NetworkObjectPoolTag tag, Vector3 position, Quaternion rotation, ShootingMetadata shootingMetadata)
    {
        var obj = SpawnFromPool(tag, position, rotation);

        obj.GetComponent <BulletBehaviour>().InvokeShoot(shootingMetadata);
        return(obj);
    }
예제 #2
0
    public GameObject SpawnFromPool(NetworkObjectPoolTag tag, Vector3 position, Quaternion rotation)
    {
        if (!_poolDictionary.ContainsKey(tag))
        {
            Debug.LogError($"Pool dictionary doesn't contain key: {tag.ToString()}");
            return(null);
        }

        var objToSpawn = _poolDictionary[tag].Dequeue();

        objToSpawn.transform.position = position;
        objToSpawn.transform.rotation = rotation;

        var pooledObj = objToSpawn.GetComponent <IPooledObject>();

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

        _poolDictionary[tag].Enqueue(objToSpawn);

        return(objToSpawn);
    }