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

Valor de 'Magnitude'

Esta dúvida é da aula 3 no video "Zumbi seguir jogador".

Olá, estou com uma dúvida em relação ao uso do normalized. Eu vi na metadata que o normalized define como 1 o valor da magnitude de um Vector. eu usei o Debug.log(direcao.magnitude); pra ver a diferença da magnitude com e sem o normalized. Sem o normalized a magnitude fica em 2, e os zumbis ficam em cima do jogador sem ter como fugir deles. Com o normalized, o valor da magnitude parece variar pela velocidade, ou distancia do jogador, porque assim que eu rodo o jogo ele começa em 7 e vai diminuindo até 2, conforme os zumbis se aproximam do jogador. No video o professor diz que o zumbi usa a distância entre ele e o jogador como velocidade, e diferente do jogador que movimenta de 1 em 1(pixel?), o zumbi pega a distância inteira.

Isso significa que a magnitude é quanto o personagem se move por vez? Não ficou muito claro pra mim, e por que no controle do jogador não precisou normalizar? e o que é exatamente esse valor de magnitude? Já que a gente define ele como 1, mas durante o gameplay ele varia entre varios valores?

2 respostas
solução!

O Vetor é uma estrutura que guarda direção, módulo e sentido.

A magnitude (módulo) representa o tamanho daquele vetor então se o jogador está a 10 de distância do zumbi em condições ideais esse vetor valeria 10.

Por isso é importante normalizar o vetor direção porque pensa que eu falo pro zumbi caminhar nessa direção e ainda multiplico ela por uma velocidade de 3, ficaria 30 unidades por segundo de velocidade que é muito rápido e a medida que o zumbi se aproximasse do personagem iria ficar cada vez mais lento devido a mudança no tamanho do vetor.

Por isso é importante normalizar, normalizar transforma esse de 10 num vetor unitário de 1 então independente da distância ele sempre vale 1, assim o nosso vetor agora serve mais pra guardar o sentido que o zumbi tem que ir, e a velocidade podemos utilizar outra variável e não vamos ter deslocamento em velocidades inconstantes.

No jogador não normalizamos ainda porque como o Axis guarda somente valores de 1 a -1 isso não causaria nenhum prejuízo grande naquele momento porque ele já é quase num vetor unitário.

Por isso se a normalização fosse demonstrada naquele momento não teria nenhuma explicação visual para demonstrar a vantagem de usar. Mas é importante sim normalizar o vetor direção do jogador também porque senão na diagonal ele se moverá mais rápido do que para frente e para trás mesmo que muito pouco.

Se não ficou muito claro algum tópico dessa explicação em texto pode perguntar mais por aqui.

Bons estudos :)

Perfeito professor, muito obrigado!