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