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

Boa tarde, em relação a rotação do personagem com o movimento do mouse (Unity parte 1- aula 4) o personagem não faz sua rotação apenas no eixo Y, mas também no eixo X, e fica extremamente bugado, o que pode ser? Print: https://snipboard.io/06IiqN.jpg

void FixedUpdate(){

    GetComponent<Rigidbody>().MovePosition(GetComponent<Rigidbody>().position + (direcao * velocidade * Time.deltaTime));

    Ray raio = Camera.main.ScreenPointToRay(Input.mousePosition);

    Debug.DrawRay(raio.origin, raio.direction * 100, Color.red);

    RaycastHit impacto;

    if(Physics.Raycast(raio,out impacto, 100, mascaraChao))
    {
        Vector3 posicaoMiraJogador = impacto.point - transform.position;

        posicaoMiraJogador.y = transform.position.y;

        Quaternion novaRotacao = Quaternion.LookRotation(posicaoMiraJogador);

        GetComponent<Rigidbody>().MoveRotation(novaRotacao);
    }

}
4 respostas

Oi, Miguel, tudo bem?

Você pode enviar seu projeto num .zip no Google Drive, Dropbox, ou outro uploader e mandar aqui para darmos uma olhada?

Claro!

Segue o link:

https://drive.google.com/open?id=1muBDVm3ICbwzARedRMP_HGuObea4V_-w

solução!

Oi, Miguel, tudo bem?

O pivô do seu objeto estava influenciando na rotação. Por algum motivo seu pivô ficou no meio do personagem ao invés de no chão. Mas não tem problema nenhum. Basta você trocar essa linha abaixo:

posicaoMiraJogador.y = 0;

Assim nenhum valor de Y será passado para a rotação e ele irá rodar sempre certinho em volta do eixo.

Muito obrigado professor!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software