Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Vector3 direcaoDoAlvo = posicaoDoAlvo - posicaoAtual;

Galera, eu não consegui entender direito este código:

 Vector3 direcaoDoAlvo = posicaoDoAlvo - posicaoAtual;

No vídeo o instrutor fala que tem de compensar a posição atual, mas não entendi direito. Alguém poderia me explicar, até com desenhos se for possível.

E caso não fizesse essa subtração, o que ocorreria?

Obrigado.

2 respostas
solução!

Olá Thiago,

Aqui estamos usando a operação de subtração entre vetores para descobrir qual a direção que o míssil deve seguir em cada atualização do jogo.

Vamos ver a seguinte figura:

Suponha que a seja a posição do alvo (o ponto final da seta a) e b seja a posição atual do míssil (também o ponto final da seta b). Queremos descobrir qual direção o míssil deve seguir dado que ele está em b e quer seguir na direção de a.

Para isso, basta utilizar a operação de subtração entre vetores e calcular a - b. Isso vai gerar um novo vetor ligando os pontos a e b apontando na direção do primeiro ponto utilizado na subtração (nesse caso, o a). Perceba que a direção obtida a - b é exatamente a direção que o míssil precisa seguir para perseguir o alvo.

Isso é exatamente o que estamos fazendo quando calculamos:

Vector3 direcaoDoAlvo = posicaoDoAlvo - posicaoAtual;

Nesse caso, teremos como resultado um vetor ligando a posicaoAtual com a posicaoDoAlvo apontando na direção da posicaoDoAlvo já que ele aparece em primeiro lugar na subtração.

Obrigado Jeferson Silva.