1
resposta

Atirando na camera

Ola boa noite, fui fazer o Codigo para travar o Y, mais não consegui.. o personagem começa a olhar para cima , se arrasto o mouse para baixo

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

using System.Collections; using System.Collections.Generic; using UnityEngine;

public class ControlaJogador : MonoBehaviour { public float velocidade = 10; Vector3 direcao; public LayerMask MascaraChao;

void Update ()

{ float eixoX = Input.GetAxis("Horizontal"); float eixoZ = Input.GetAxis("Vertical");

direcao = new Vector3(eixoX, 0, eixoZ);


if(direcao != Vector3.zero){
    GetComponent<Animator>().SetBool("Movendo",true);
}
else{
    GetComponent<Animator>().SetBool("Movendo",false);
}

}

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, Color.red);

    RaycastHit impacto;

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

        posicaoMiraJogador.y = transform.position.y;

        Quaternion novaRotacao = Quaternion.LookRotation(posicaoMiraJogador);

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

    }

}

}

1 resposta

Oi, João, tudo bem?

Dá uma olhada nesse tópico tem até algumas sugestões para melhorar esse código.