Boa Tarde professor, primeiramente gostaria de agradecer pelas excelentes aulas e parabenizar pela ótima didática.
Estou realizando um projeto para a faculdade de um jogo que mexe com Algoritmos de Escalonamento e a ideia é fazer algo parecido com o OverCooked (chamamos de OverClocked haha), e diferente da movimentação do jogo de zumbi que segue a colisão do raio, o personagem deve se mover e rotacionar apenas na direção em que o jogador virar através do w a s d, eu pesquisei e consegui fazer isso através do translate e rotate no código que irei mostrar, mas estou com aquele problema do personagem ficar tremendo ao colidir com o objeto.
Tentei arrumar da forma que você ensina no vídeo sobre colisões utilizando o RigidBody do jogador, mas como no código você está usando um Vector3 para criar a variável de direção e no meu eu não estou usando, eu não estou conseguindo separar o personagem apenas para andar pra frente e atrás e ao colidir ele não tremer, e caso andar no eixo horizontal ele apenas rotacionar, poderia me ajudar a entender como posso resolver isso?
Segue o código
public class move : MonoBehaviour
{
public float Velocidade = 10;
public float Girar = 200;
private Rigidbody rigidbodyJogador;
void Start()
{
Time.timeScale = 1;
rigidbodyJogador = GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update()
{
float translate = (Input.GetAxis("Vertical") * Velocidade) * Time.deltaTime;
//float eixoZ = Input.GetAxis("Vertical");
float rotate = (Input.GetAxis("Horizontal") * Girar) * Time.deltaTime;
//rigidbodyJogador.MovePosition(rigidbodyJogador.position + (translate * Velocidade * Time.deltaTime));
transform.Translate(0, 0, translate);
transform.Rotate(0, rotate, 0);
}
}
Obrigado.