using UnityEngine; // Este enemigo avanza directo hacia la nave del jugador, sin importar en qué // dirección tenga que moverse para lograrlo. public class EnemyChaser : MonoBehaviour { public float moveSpeed = 3f; // Guardamos una referencia al Transform de la nave, para saber hacia dónde movernos. private Transform jugador; void Start() { // GameObject.FindGameObjectWithTag busca en toda la escena el único objeto // que tenga el tag indicado. Por eso en el Módulo 3 le pusimos el tag "Player" a la nave. GameObject objetoJugador = GameObject.FindGameObjectWithTag("Player"); if (objetoJugador != null) { jugador = objetoJugador.transform; } } void Update() { // Si la nave ya fue destruida (jugador quedó en null), no hay a quién perseguir. if (jugador == null) return; // Vector3.MoveTowards calcula, paso a paso, una posición que se va acercando // desde transform.position hacia jugador.position, sin pasarse de largo. transform.position = Vector3.MoveTowards(transform.position, jugador.position, moveSpeed * Time.deltaTime); } // Igual que con los meteoritos: si el enemigo sale de la pantalla sin haber chocado // con nada, lo destruimos para no dejar objetos de más dando vueltas. void OnBecameInvisible() { Destroy(gameObject); } void OnTriggerEnter2D(Collider2D other) { if (other.CompareTag("Player")) { PlayerController jugador = other.GetComponent(); if (jugador != null) { jugador.RecibirDano(1); } Destroy(gameObject); } } }