public GameObject SpawnFromPool(NetworkObjectPoolTag tag, Vector3 position, Quaternion rotation, ShootingMetadata shootingMetadata) { var obj = SpawnFromPool(tag, position, rotation); obj.GetComponent <BulletBehaviour>().InvokeShoot(shootingMetadata); return(obj); }
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); }