Version: 2019.4
Dirección y Distancia de Un Objeto a Otro
La Cantidad de la magnitud de un Vector que se encuentra en la dirección de otro Vector.

Computando un vector de Normal/Perpendicular

Un vector de la normal (ie, un vector perpendicular a un plano) es requerido frecuentemente durante la generación de un mesh y puede también ser útil en path following y otras situaciones. Dados tres puntos en el plano, digamos los puntos de las esquinas de un triángulo mesh, es fácil encontrar la normal. Escoja cualquiera de estos tres puntos y luego restelos de cada uno de los otros dos puntos separadamente para dar dos vectores:-

var a: Vector3;
var b: Vector3;
var c: Vector3;

var side1: Vector3 = b - a;
var side2: Vector3 = c - a;

El producto cruz de estos dos vectores va a dar un tercer vector que es perpendicular a la superficie. La “regla de la mano izquierda” puede ser utilizada para decidir el orden en que los dos vectores deberían ser pasados para la función producto cruz. Al mirar hacia abajo la parte superior de la superficie (de cuál la normal va a apuntar hacia afuera) el primer vector debe barrer alrededor del sentido horario a la segunda: -

 var perp: Vector3 = Vector3.Cross(side1, side2);

El resultado va a apuntar en exactamente la dirección opuesta si el orden de los vectores input se invierten.

Para meshes, el vector de la normal debe también ser normalizado. Esto puede ser hecho con la propiedad normalized, pero hay otro truco que es ocasionalmente útil. Usted puede también normalizar el vector perpendicular dividiéndolo por su magnitud:-

var perpLength = perp.magnitude;
perp /= perpLength;

Resulta ser que el área del triángulo es igual a perpLenght / 2. Esto es útil si usted necesita encontrar el área superficial de todo el mesh o quiera escoger los triángulos aleatoriamente con probabilidad basada en sus áreas relativas.

Dirección y Distancia de Un Objeto a Otro
La Cantidad de la magnitud de un Vector que se encuentra en la dirección de otro Vector.
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961