A relação entre as coordenadas mundiais Unity3D e as coordenadas locais, fale sobre a conversão entre
índice
1. Introdução à postagem do blog
(4) Converta coordenadas locais em coordenadas mundiais
(5) Converter coordenadas mundiais em coordenadas locais
1. Introdução à postagem do blog
Falando sobre as coordenadas mundiais e locais em Unity3D, e a conversão mútua entre os dois.
2. Conteúdo
(1) Relatividade
Em primeiro lugar, a coisa mais importante que devemos entender é a relatividade da posição.Apenas comparando uns com os outros podemos julgar a posição.
(2) Coordenadas mundiais
A coordenada mundial é a única posição correspondente ao objeto no nível mais alto com referência ao sistema de coordenadas mundiais em Unity3D. Para o objeto no nível mais alto, a posição no painel Inspetor é a coordenada mundial. Há uma propriedade de posição na API Transform, que pode obter diretamente as coordenadas mundiais do objeto. Não importa em qualquer nível, o objeto obtido é a posição do objeto. A única coordenada mundial.
(3) Coordenadas locais
A informação de posição obtida tomando qualquer objeto como sistema de referência em vez do ponto zero mundial como sistema de referência é a coordenada local, por exemplo: objeto A, seu sub-objeto B, e a informação de posição de B no painel Inspetor é B para A é a coordenada local obtida pelo ponto zero, então podemos obter uma mensagem, se B não é mais filho de A, mas está no mesmo nível de A, então a coordenada de B deve ser igual ao local anterior coordenada + a coordenada de A, se A for um objeto em coordenadas mundiais, então o resultado são as coordenadas mundiais de B.
(4) Converta coordenadas locais em coordenadas mundiais
Pode-se ver em (1) que as coordenadas mundiais do objeto podem ser obtidas diretamente por meio de transform.position
Pode ser visto em (3) que se o pai B do objeto A é um objeto no sistema de coordenadas mundiais, as coordenadas mundiais do objeto A = as coordenadas locais do objeto A + as coordenadas mundiais de B.
A API Transform fornece um método TransformPoint, que pode obter a posição das coordenadas mundiais do objeto em relação a qualquer ponto, portanto, o valor de vect abaixo são as coordenadas mundiais do cubo.
var vect = cube.TransformPoint(new Vector3(0,0,0));
(5) Converter coordenadas mundiais em coordenadas locais
A API Transform fornece um método InverseTransformPoint, que pode obter as coordenadas locais de qualquer objeto em relação a outro objeto. No código a seguir, o valor vect são as coordenadas locais se o cubo for filho de gordura.
public Transform fat;
public Transform cube;
var vect = fat.InverseTransformPoint(cube.transform.position);
3. Empurre
博 主 Github :https://github.com/KingSun5
4. Conclusão
Se você acha que o artigo do blogger está bem escrito, você pode querer prestar atenção nele e gostar da postagem do blog. Além disso, a capacidade do blogger é limitada. Se houver algum erro no artigo, comente e critique .
Grupo de troca QQ: 806091680 (Chinar)
Este grupo foi criado pelo blogueiro da CSDN Chinar, recomendo! Eu também estou no grupo!
Este artigo é um artigo original, por favor, reimprima a fonte do famoso autor e mantenha-se no topo! ! ! !