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

Dúvida em código

Não compreendi o conceito deste calculo:

Vector3 direcao = jogador.transform.position - transform.position;

Poderia explicar de outra forma para que eu possa fixar o conceito e como funciona.

3 respostas
solução!

Claro que posso!

Seguinte pensa o seguinte:

Você tem um Vector3 de posição com 10 em X, 0 em Y e 10 em Z, então temos Vector3(10, 0, 10) e essa é a posição do Jogador.

Agora queremos que o Inimigo vá para essa posição do jogador, certo?

Se você pensar parece simples, é só olhar que temos valor, temos 10 em X e 10 em Z depois passamos isso pro Unity e mandamos ele se deslocar na direção dessa posição. Nesse caso seria enviar o Inimigo para frente e para a direita, já que temos o valor positivo em Z que leva para frente e um valor positivo em X que leva para a direita.

Isso funcionaria perfeitamente mas somente se o nosso Inimigo estivesse na posição 0 em X, Y e Z. Imagine agora que o nosso inimigo está em uma posição Vector3(0, 0, 10), ele precisaria ir para frente? Não, certo? Porque no Z ele já está nessa posição só falta ele se deslocar para a direita.

E é exatamente isso que essa linha faz, ela fala 'Olha quero pegar uma direção que me leva para a posição do jogador mas eu quero essa direção baseada em onde eu estou ao invés de baseada no 0 do mundo'.

Deu pra entender ou compliquei ainda mais? Hehe

Se ainda tiver difícil pode me avisar sem problema que eu tento explicar de outra forma. O importante é aprender e fixar o conteúdo.

Bons estudos! :)

Ahh sim, agora entendi bem. Muito obrigado.

Boa, Leonardo! Qualquer outra dúvida só perguntar. :)