Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Não entendi o calculo.

Como funciona esse calculo se a distância entre a camera e o jogador é igual. Resultando assim em zero...

"Não entendi esse ponto de vista pela lógica. Vcs podem esclarecer por favor não entendi, desde já agradeço!

distCompensar = transform.position - Jogador.transform.position;

No aguardo!

1 resposta
solução!

Olá João!

Nós queremos que a câmera acompanhe o jogador por isso colocamos para a câmera acompanhar examente a posição dele então posição da câmera = posição jogador.

transform.position = Jogador.transform.position;

Só que além disso queremos manter sempre essa distância entra a câmera e o jogador que escolhemos no inicio, então calculamos a distância entre dois pontos no espaço tridimensional é dada pela fórmula da distância euclidiana. No caso do Unity, a posição é representada por um vetor do tipo Vector3, que possui as coordenadas x, y e z.

Portanto, o cálculo transform.position - Jogador.transform.position está subtraindo as coordenadas x, y e z da posição do jogador das coordenadas x, y e z da posição da câmera, resultando em um vetor que representa a distância entre os dois pontos.

Agora com a distância dos dois em mão podemos aplicar ela, como você isso essa distância nunca muda por isso podemos calcular a distância somente uma vez no Start, mas temos que sempre aplicá-la na distância Update, porque já o jogador se movimenta então a câmera se movimenta de acordo com:

posição câmera = posição do jogador (muda sempre) + distancia que deve se manter longe (nunca muda)

Então estamos constantemente atualizando a posição da câmera mas mantendo essa distância do inicio, resultado na linha:

transform.position = Jogador.transform.position + distCompensar;

Espero ter ajudado e qual dúvida pode falar. Bons estudos!