1
resposta

Lookrotation nulo.

Fala Henrique! Meu jogo esta funcionando normalmente, mas tenho um erro que vira e mexe esta aparecendo durante as sessoes com o Look Rotation. Sabe me explicar o motivo? Abraco!

Codigo: public void Rotacionar (Vector3 direcao){ Quaternion novaRotacao = Quaternion.LookRotation(direcao); meuRigidbody.MoveRotation(novaRotacao); } Referencias:

Ref1: if (Physics.Raycast(raio, out impacto, 100, MascaraChao)) {

        Vector3 posicaoMiraJogador = impacto.point - transform.position;

        posicaoMiraJogador.y = transform.position.y;

        Rotacionar(posicaoMiraJogador);

    }

Ref2:

    void FixedUpdate()
{
    float distancia = Vector3.Distance(transform.position, Jogador.transform.position);

    movimentaInimigo.Rotacionar(direcao);

Erro:

Look rotation viewing vector is zero UnityEngine.Quaternion:LookRotation(Vector3) MovimentoPersonagem:Rotacionar(Vector3) (at Assets/Scripts/MovimentoPersonagem.cs:23) ControlaInimigo:FixedUpdate() (at Assets/Scripts/ControlaInimigo.cs:51)

1 resposta

Oi, João Pedro, tudo bem?

Isso é um aviso (warning) da Unity, não representa um erro de fato. Mas o que ele está avisando é que estamos fazendo uma operação e gastando processamento desnecessário já que estamos atribuindo um valor zerado para calcular uma rotação que no final retornaria zerada também. Podemos evitar esse comportamento não calculando rotação quando o valor de direção for zerado. Algo como:

if(direcao != Vector3.zero) {
  // agora rotacionamos porque verificamos que a direção não é zero
}