Cosmic Strike
 
Cargando...
Buscando...
Nada coincide
HomingMovement.cs
Ir a la documentación de este archivo.
1
7
8using UnityEngine;
9
15public class HomingMovement : MonoBehaviour
16{
17 // ========== PARÁMETROS EXPUESTOS EN INSPECTOR ==========
18
22 [Header("Movimiento de Seguimiento")]
23 [Tooltip("Velocidad de desplazamiento hacia el jugador")]
24 public float speed = 3f;
25
30 [Tooltip("Transform del jugador al que debe dirigirse; si está vacío, se buscará por tag en Start()")]
31 public Transform playerTransform;
32
33 // ========== MÉTODOS UNITY ==========
34
39 void Start()
40 {
41 // Si no se asignó en Inspector, buscamos el GameObject con tag "Player"
42 if (playerTransform == null)
43 {
44 GameObject playerGO = GameObject.FindGameObjectWithTag("Player");
45 if (playerGO != null)
46 playerTransform = playerGO.transform;
47 else
48 Debug.LogWarning("HomingMovement: no se encontró ningún GameObject con tag 'Player'.");
49 }
50 }
51
56 void Update()
57 {
58 if (playerTransform == null) return;
59
60 // 1) Calculamos la dirección normalizada hacia el jugador
61 Vector2 direction = ((Vector2)playerTransform.position - (Vector2)transform.position).normalized;
62
63 // 2) Calculamos el ángulo en grados hacia la dirección objetivo
64 // (el -90° es necesario si el sprite está orientado hacia "arriba" por defecto)
65 float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg - 90f;
66 transform.rotation = Quaternion.Euler(0f, 0f, angle);
67
68 // 3) Movemos el objeto en dirección "up", que ahora está alineada hacia el jugador
69 // Usamos Space.Self para mover según la rotación del objeto
70 transform.Translate(Vector3.up * speed * Time.deltaTime, Space.Self);
71 }
72}
Componente que permite que un enemigo se dirija constantemente hacia el jugador. Si no se asigna un T...
void Update()
Lógica de movimiento de persecución del jugador. Se ejecuta en cada frame, orientando el objeto hacia...
void Start()
Método llamado al iniciar el objeto. Verifica si se ha asignado el jugador manualmente y,...
Transform playerTransform
Transform del jugador al que se dirigirá el enemigo. Si no se asigna en el Inspector,...
float speed
Velocidad de movimiento del enemigo hacia el jugador (en unidades por segundo).