Volver a la página principal
sábado 15 febrero 2025
3

Cómo usar la clase Plane en Unity

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.

Creación y uso de un plano

Un Plane se define con un punto y una normal o mediante tres puntos en el espacio.

Declaración y métodos principales

Plane myPlane = new Plane(Vector3.up, Vector3.zero);

Este código crea un plano horizontal en el eje Y, pasando por el origen.

Métodos principales

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.

Ejemplos de uso

Determinar la distancia de un punto al 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.

Intersección de un rayo con un 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.

Etiquetas:
csharp unity
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer