Volver a la página principal
lunes 14 abril 2025
5

Cómo detectar colisiones con Raycast en Unity

Raycast es una herramienta fundamental en Unity que permite detectar colisiones y objetos en línea recta desde un punto en el espacio. Se usa mucho para disparos, interacciones o detección de obstáculos en videojuegos 3D y 2D.

¿Qué es y cómo funciona Raycast en Unity?

En Unity, un Raycast es una función que lanza un rayo invisible desde un punto en una dirección específica y detecta si colisiona con algún objeto en su recorrido. Esto permite, por ejemplo, saber si un jugador apunta a un objeto o si hay un obstáculo delante.

La función más usada es:

Physics.Raycast()

Se utiliza en juegos 3D junto al sistema de físicas de Unity.

Sintaxis básica:

Physics.Raycast(Vector3 origin, Vector3 direction, out RaycastHit hitInfo, float maxDistance)
Parámetro Tipo Descripción
origin Vector3 Punto de inicio del rayo.
direction Vector3 Dirección en la que se lanza el rayo.
hitInfo RaycastHit Guarda información del objeto impactado (opcional).
maxDistance float Distancia máxima que recorrerá el rayo.
Nota: Para usarlo en 2D se emplea Physics2D.Raycast().

Ejemplos de uso de Raycast en Unity

Ejemplo básico en 3D:

void Update()
{
    RaycastHit hit;
    if (Physics.Raycast(transform.position, transform.forward, out hit, 100f))
    {
        Debug.Log("Objeto impactado: " + hit.collider.name);
    }
}

Ejemplo en 2D:

void Update()
{
    RaycastHit2D hit = Physics2D.Raycast(transform.position, Vector2.right, 10f);
    if (hit.collider != null)
    {
        Debug.Log("Objeto impactado: " + hit.collider.name);
    }
}
Etiquetas:
csharp unity
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer