La relación entre las coordenadas mundiales de Unity3D y las coordenadas locales, habla de conversión entre

             La relación entre las coordenadas mundiales de Unity3D y las coordenadas locales, habla de conversión entre


Tabla de contenido

1. Introducción a la publicación del blog

2. Contenido

(1) Relatividad

(2) Coordenadas mundiales

(3) Coordenadas locales

(4) Convertir coordenadas locales en coordenadas mundiales

(5) Convertir coordenadas mundiales en coordenadas locales

3. Empuje

4. Conclusión


1. Introducción a la publicación del blog

Hablando de las coordenadas mundiales y locales en Unity3D, y la conversión mutua entre los dos.


2. Contenido

(1) Relatividad

En primer lugar, lo más importante que tenemos que entender es la relatividad de la posición, sólo comparándonos podemos juzgar la posición.

(2) Coordenadas mundiales

La coordenada mundial es la única posición correspondiente al objeto en el nivel más alto con referencia al sistema de coordenadas mundial en Unity3D. Para el objeto en el nivel más alto, la posición en el panel Inspector es la coordenada mundial. Hay una propiedad de posición en la API de transformación, que puede obtener directamente las coordenadas mundiales del objeto. No importa en cualquier nivel, el objeto obtenido es la posición del objeto La única coordenada mundial.

(3) Coordenadas locales

La información de posición obtenida al tomar cualquier objeto como sistema de referencia en lugar del punto cero mundial como sistema de referencia es la coordenada local, por ejemplo: el objeto A, su subobjeto B y la información de posición de B en el panel Inspector es B a A es la coordenada local obtenida por el punto cero, por lo que podemos obtener un mensaje, si B ya no es hijo de A, pero está al mismo nivel que A, entonces la coordenada de B debe ser igual a la local anterior. coordenada + la coordenada de A, si A es un objeto en coordenadas mundiales, entonces el resultado son las coordenadas mundiales de B.

(4) Convertir coordenadas locales en coordenadas mundiales

Se puede ver en (1) que las coordenadas mundiales del objeto se pueden obtener directamente a través de transform.position

Se puede ver en (3) que si el padre B del objeto A es un objeto en el sistema de coordenadas mundiales, las coordenadas mundiales del objeto A = las coordenadas locales del objeto A + las coordenadas mundiales de B.

La API de transformación proporciona un método TransformPoint, que puede obtener la posición de las coordenadas mundiales del objeto en relación con cualquier punto, por lo que el valor de vect a continuación son las coordenadas mundiales del cubo.

var vect = cube.TransformPoint(new Vector3(0,0,0));

(5) Convertir coordenadas mundiales en coordenadas locales

La API Transform proporciona un método InverseTransformPoint, que puede obtener las coordenadas locales de cualquier objeto en relación con otro objeto. En el siguiente código, el valor vect son las coordenadas locales si el cubo es hijo de fat. 

public Transform fat;

public Transform cube;

var vect = fat.InverseTransformPoint(cube.transform.position);

3. Empuje

博 主 Github :https://github.com/KingSun5


4. Conclusión

        Si crees que el artículo del blogger está bien escrito, es posible que desees prestar atención al blogger y dar me gusta a la publicación del blog. Además, la capacidad del blogger es limitada. Si hay algún error en el artículo, comenta y critica. .

       Grupo de intercambio QQ: 806091680 (Chinar)

       Este grupo fue creado por el blogger de CSDN Chinar, ¡lo recomiendo! ¡Yo también estoy en el grupo!

       Este artículo es un artículo original, por favor vuelva a imprimir la fuente del famoso autor y manténgase en la parte superior. ! ! !

 

Supongo que te gusta

Origin blog.csdn.net/Mr_Sun88/article/details/98123268
Recomendado
Clasificación