La clase Plane
en Unity se utiliza para representar un plano infinito en el espacio 3D. Es útil para cálculos de colisiones, intersección con rayos y determinación de posiciones en un espacio tridimensional.
Un Plane
se define con un punto y una normal o mediante tres puntos en el espacio.
Plane myPlane = new Plane(Vector3.up, Vector3.zero);
Este código crea un plano horizontal en el eje Y, pasando por el origen.
Método | Descripción |
---|---|
Plane(Vector3 normal, Vector3 point)
|
Crea un plano con una normal y un punto. |
Plane(Vector3 a, Vector3 b, Vector3 c)
|
Crea un plano con tres puntos en el espacio. |
GetDistanceToPoint(Vector3 point)
|
Devuelve la distancia de un punto al plano. |
Raycast(Ray ray, out float enter)
|
Calcula si un rayo intersecta con el plano. |
void Start()
{
Plane plane = new Plane(Vector3.up, Vector3.zero);
Vector3 point = new Vector3(0, 5, 0);
float distance = plane.GetDistanceToPoint(point);
Debug.Log("Distancia al plano: " + distance);
}
Este código devuelve la distancia de un punto al plano.
void Update()
{
Plane plane = new Plane(Vector3.up, Vector3.zero);
Ray ray = new Ray(transform.position, transform.forward);
if (plane.Raycast(ray, out float enter))
{
Vector3 hitPoint = ray.GetPoint(enter);
Debug.DrawRay(ray.origin, ray.direction * enter, Color.green);
Debug.Log("Intersección en: " + hitPoint);
}
}
Aquí se detecta dónde un rayo intersecta el plano y se dibuja la intersección.
Jorge García
Fullstack developer