¿Qué es un RayCast?
Es una “línea invisible” que puedes lanzar desde un punto hacia una dirección para detectar colisiones. Ideal para disparos, detección de obstáculos, visión de enemigos o interacción precisa.
🧠 ¿Para qué sirve?
-
Detectar si algo está en la mira (enemigo, pared, ítem).
-
Ver si un jugador puede caminar hacia una dirección.
-
Comprobar si un objeto tiene visión directa de otro (como un NPC detectando al jugador).
-
Simular disparos o golpes cuerpo a cuerpo.
🛠️ Cómo usarlo
🔍 Este ejemplo lanza un rayo en cada frame y, si colisiona con algo, imprime el nombre del objeto.
⚙️ Configuración básica
-
Añade un nodo
RayCast2D
como hijo de tu objeto. -
Define su
cast_to
(ej:Vector2(100, 0)
para 100 px a la derecha). -
Actívalo (
enabled = true
). -
Asegúrate de que esté en la capa/máscara correcta para detectar los objetos deseados.
🎮 Ejemplo visual: Disparo de un arma
Un RayCast es perfecto para armas tipo laser o sniper, ya que impactan al instante. Puedes dibujar una línea para mostrar el disparo:
📌 Consejos
-
Usa varios RayCast para simulación más realista (visión en arco, colisiones múltiples).
-
Recuerda que
RayCast2D
ignora el nodo padre por defecto (útil para no detectar a sí mismo). -
Para detección en 3D usa
RayCast3D
.