Na palestra anterior, analisamos o cálculo da distância usando o teorema de Pitágoras.
Vamos agora olhar para algumas outras maneiras que a unidade pode fazer isso com seus métodos incorporados.
Ok, então vamos voltar ao nosso código para que possamos complementá-lo.
Portanto, esta é nossa distância de cálculo e esta é Pythagoras.
Agora aqui embaixo vamos criar outro carro alegórico e vamos chamá-lo de U Distance.
Portanto, este é o cálculo de distância da Unidade.
Agora, a unidade é a distância.
O cálculo pode ocupar duas posições no espaço e calcular a diferença entre elas.
Ok, então estamos realmente fazendo isso com o combustível e também com nosso tanque.
Assim, em unidade, podemos percorrer o vetor três distâncias porque na verdade está na classe do vetor três e depois dá-lo a valores
de posição que também são armazenados como vetores porque é um valor X, Y e z.
Assim, podemos ir para a posição de ponto de combustível transformar ponto e posição de transformação.
Não importa em que direção você os tem, porque está trabalhando à distância, não em uma direção.
Pronto, então lá vamos nós.
Aí está nossa distância u.
E então podemos adicionar outro registro de depuração aqui embaixo, só para que possamos ver o que é.
Portanto, colocamos a distância é igual a você.
Uma distância como essa nos cálculos.
Ok, então vamos salvar isto e voltaremos ao jogo da Unity Press e veremos quão precisos são nossos
dois cálculos.
Então, com o jogo pressionado, nós vamos.
Espaço de imprensa para começar.
Agora vamos dar uma olhada no que estamos fazendo aqui embaixo.
Temos 49, que é nossa distância que calculamos com Pitágoras.
E então temos nossa distância de unidade, que diz 53.
Por que estas são diferentes?
Você provavelmente estava percebendo quando eu estava digitando isso.
Deixe-me encontrar esse código para você.
Lembre-se que esta distância aqui é apenas em duas dimensões X e Z.
Esta distância aqui é o cálculo da distância em três dimensões, essencialmente, porque você tem as três
dimensões dessa posição e as três dimensões dessa posição.
Portanto, se voltarmos à unidade e dermos uma olhada em nosso combustível, o que nos interessa aqui é o valor
em Y do combustível, pois agora ele está sendo incluído no cálculo da distância da Unidade.
Portanto, o combustível, no meu caso, é na verdade 9. 8.
E se você não a moveu, ela ainda deve estar lá.
O tanque, se olharmos para isso, a posição do tanque, veja sua posição em Y é -11. 3.
Por isso, está dando a você valores diferentes nos quais está calculando sua distância com base.
Se você realmente não se importa com as alturas destas coisas, é claro que você poderia colocá-las no mesmo
nível ou poderia realmente forçá-las no código.
Deixe-me mostrar-lhe como fazer isso.
Portanto, pare de brincar.
Voltaremos ao nosso código e aqui queremos definir estes valores com um valor em Y de zero para que possamos realmente dizer
em vez disso vetor três e este será nosso combustível.
A pausa é igual ao novo vetor três e podemos colocar isto na posição transformada em campo x zero para o Y e depois o ponto de
combustível transformar ponto posição ponto z assim e podemos fazer um vetor três para nosso tanque.
A pausa é praticamente a mesma coisa, então vamos agarrar isto.
E coloque aqui e apenas mude isto para transformar e transformar.
Portanto, agora estas duas posições têm zero no Y.
Eles não afetarão a localização de seu objeto de jogo do tanque ou do objeto de combustível.
Basta pegar os valores deles e usá-los, colocando o Y em zero.
Isto é completamente legítimo e às vezes você realmente não se importa qual é a altura.
Você está mais interessado na distância horizontal entre as coisas e é assim que você o faria.
Certo, então agora ao calcular a distância até aqui, vai ser na verdade uma pausa de combustível e uma pausa
de tanque como essa.
Ok, então salve isto e nós vamos experimentar e ver se isso conserta nossos cálculos.
Então, vamos agora pressionar o jogo e vamos bater na velha barra de espaço imediatamente e vamos dar uma olhada em nossos
cálculos muito, muito melhor e muito mais precisos.
E então, é claro, se eu vier e mover meu tanque, ele recalculará ambos para estar no mesmo
lugar.
Ótimo.
Isso funciona bem.
Então, isso é encontrar a distância entre dois pontos.
Se calcularmos o vetor entre este ponto e este ponto, podemos também descobrir o comprimento do vetor,
que é a distância entre estes dois pontos.
Assim como usávamos a magnitude antes quando tínhamos um pequeno aldeão e os porcos perseguindo-o por perto.
Então deixe-me mostrar-lhe como faríamos isso.
De volta ao código novamente, vamos calcular outro vetor, este caso.
Portanto, vetor três e nós usaremos estas duas posições para fazer o vetor entre, ok, porque sabemos que
elas zeraram no Y.
Portanto, este será um tanque para combustível e isso vai igualar a pausa de combustível menos o tanque, pausa como essa.
Então, obtemos apenas a magnitude disto.
Então vamos agora fazer o registro de depuração e vamos vetorizar.
Assim como a magnitude v e aqui vamos colocar o tanque na magnitude do ponto de combustível como esse, que é o que usamos anteriormente.
Certo.
Portanto, economizando, vamos voltar à unidade.
Vamos fazer um jogo de imprensa e dar uma olhada em nossos cálculos.
Por isso, pressionamos o jogo.
E então eu carrego na barra de espaço e obtemos três valores que são todos exatamente iguais, mas temos maneiras
diferentes de calculá-los de fato.
Ótimo.
Assim, é assim que se pode trabalhar a distância.
E nós já vimos magnitude antes.
Antes de irmos, uma coisa que eu gostaria de salientar com este tanque para combustível, vamos também pegar esta linha e eu quero colocá-lo
aqui porque você pode ter visto este método surgir antes é obter a magnitude quadrada.
Agora deixe-me apenas colocar a magnitude do SKU aqui em baixo para combustível em vez da magnitude.
O que eu vou fazer é ir de uma magnitude de ponto quadrado como essa.
Certo.
E então falarei sobre isto em um momento depois que tivermos dado uma olhada.
Portanto, basta salvar essa mudança de volta à unidade e, novamente, vamos pressionar o jogo.
Certo.
Portanto, vamos nos aproximar um pouco mais deste tanque.
Assim, quando eu bato na barra de espaço, podemos ver nossa magnitude quadrática e nossa magnitude normal.
Portanto, a magnitude normal é dez.
A magnitude quadrada é cerca de 100, ou seja, dez vezes dez, ou seja, o quadrado de dez.
Dez para o poder de dois dá-lhe a magnitude quadrada.
Por que diabos você precisa da magnitude quadrada?
Bem, a magnitude quadrada é uma operação muito mais rápida do que a magnitude, porque a magnitude requer que você
realize uma operação de raiz quadrada, porque é isso que está na fórmula.
Mas se retirarmos essa raiz quadrada, acabamos com a magnitude quadrada.
Agora, é obviamente um valor maior, mas você está poupando a si mesmo essa operação de raiz quadrada.
Assim, no caso do nosso aldeão e dos porcos antes, quando poderíamos ter dito que a magnitude do ponto
de direção é maior que dois, ou poderíamos também ter dito que a magnitude do ponto de direção ao quadrado é maior que quatro em
nosso código e é na verdade uma operação mais rápida de ser realizada.
Portanto, tenha isso em mente, especialmente quando você estiver fazendo algo repetidamente dentro
de um loop de atualização, é que você pode usar a magnitude quadrada.
E se você olhar para muitas das ferramentas em unidade e o código que está disponível para os personagens e está funcionando
à distância e coisas assim, você verá aquela magnitude quadrada usada repetidamente.
E é por isso.