La clase Ray en Unity representa una línea infinita en el espacio 3D con un punto de origen y una dirección. Se usa comúnmente en cálculos de intersección, como la detección de colisiones mediante raycasting.
La clase Ray es útil para detectar objetos en una dirección específica sin necesidad de colisionadores físicos. Se define con dos parámetros:
Ray miRayo = new Ray(origen, direccion);
Donde:
origen: es un Vector3 que representa el punto de inicio del rayo.
direccion: es un Vector3 que indica la dirección en la que se proyecta el rayo.
Se usa a menudo con Physics.Raycast para detectar colisiones con objetos en la escena:
Ray rayo = new Ray(transform.position, transform.forward);
RaycastHit hit;
if (Physics.Raycast(rayo, out hit, 100f))
{
Debug.Log("Impacto en: " + hit.point);
}
if (Physics.Raycast(transform.position, transform.forward, out RaycastHit hit, 10f))
{
Debug.Log("Objeto detectado: " + hit.collider.name);
}
Ray rayo = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(rayo, out RaycastHit hit))
{
Debug.Log("Impacto en: " + hit.point);
}
Jorge García
Fullstack developer