public void ObtenerEnemyAmmo(Transform enemyAmmo) { Transform spawnedAmmo = EnemyAmmoQueue.Dequeue(); EnemyAmmo pa = spawnedAmmo.GetComponent <EnemyAmmo>(); pa.SetEnemyAmmo(VelocidadEnemyAmmo, TiempoVidaEnemyAmmo, ValorDañoEnemyAmmo); spawnedAmmo.gameObject.SetActive(true); spawnedAmmo.position = enemyAmmo.position + (enemyAmmo.forward * 2f); spawnedAmmo.rotation = enemyAmmo.rotation; EnemyAmmoQueue.Enqueue(spawnedAmmo); //return spawnedAmmo; }
public void SpawnAmmo(Dictionary <string, object> _data) { float radius = 150f; MyAmmos = new List <EnemyAmmo>(); int ammoNum = (int)_data["AmmoNum"]; int ammoSpeed = (int)_data["AmmoSpeed"]; Vector3 shooterPos = (Vector3)_data["ShooterPos"]; for (int i = 0; i < ammoNum; i++) { GameObject ammoGo = Instantiate(ThatAmmoPrefab.gameObject, Vector3.zero, Quaternion.identity) as GameObject; ammoGo.name = string.Format("enemyAmmo{0}", i); EnemyAmmo ea = ammoGo.GetComponent <EnemyAmmo>(); float divAngle = 360 / ammoNum; float x = radius * Mathf.Cos(i * divAngle * Mathf.Deg2Rad) + shooterPos.x; float y = radius * Mathf.Sin(i * divAngle * Mathf.Deg2Rad) + shooterPos.y; ammoGo.transform.SetParent(transform); ammoGo.transform.position = new Vector2(x, y); ea.Init(_data); ea.SetCircularMotion(radius, i * divAngle * Mathf.Deg2Rad); MyAmmos.Add(ea); } }