using UnityEngine; // Este enemigo baja hasta una altura fija y se queda ahí quieto, disparando hacia abajo // cada cierto tiempo, sin acercarse más a la nave. public class EnemyShooter : MonoBehaviour { [Header("Movimiento")] public float moveSpeed = 3f; // Hasta qué altura (posición Y) baja antes de detenerse a disparar. public float alturaDeDetencion = 2f; [Header("Disparo")] public GameObject enemyBulletPrefab; public float fireRate = 1.5f; private bool detenido = false; private float proximoDisparo; void Update() { if (!detenido) { Mover(); } else if (Time.time >= proximoDisparo) { Disparar(); proximoDisparo = Time.time + fireRate; } } void Mover() { transform.Translate(Vector3.down * moveSpeed * Time.deltaTime); // Apenas llega a la altura de detención, deja de moverse y empieza a disparar. if (transform.position.y <= alturaDeDetencion) { detenido = true; proximoDisparo = Time.time + fireRate; } } void Disparar() { Instantiate(enemyBulletPrefab, transform.position, Quaternion.identity); } void OnBecameInvisible() { Destroy(gameObject); } }