Não sei se é só no meu código. Mas notei que quando movimento meu jogador e solto a tecla ele continua andando um pouco, como se fosse um atraso.
Seria isso uma consequência de movimentarmos usando a física? Ou tem algo diferente no meu código mesmo?
Vou deixar meu código aqui qualquer coisa. Não vejo isso como um grande problema mas queria apenas ter certeza.
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement;
public class Script_Jogador : MonoBehaviour , Interface_Matavel { //Variaveis Jogador Vector3 direcao; public AudioClip SomDeDano; public Script_Interface_Controle ScriptInterfaceControle; public Script_Status status; private Script_Movimento_Jogador movimentar; private Script_Animação animar;
public GameObject TextoGameOver;
public LayerMask MascaraChao;
// Start is called before the first frame update
void Start()
{
movimentar = GetComponent<Script_Movimento_Jogador>();
animar = GetComponent<Script_Animação>();
status = GetComponent<Script_Status>();
Time.timeScale = 1;
}
// Update is called once per frame
void Update()
{
//Movimentação
float eixoX = Input.GetAxis("Horizontal");
float eixoZ = Input.GetAxis("Vertical");
direcao = new Vector3(eixoX, 0, eixoZ);
//Animações
animar.Movimentar(direcao.magnitude);
if (status.Vida <= 0)
{
if (Input.GetButtonDown("Fire1"))
{
SceneManager.LoadScene("Main_Game");
}
}
}
void FixedUpdate()
{
//Movimentação e Rotação por outro código e herança
movimentar.Movendo(direcao, status.Velocidade);
movimentar.GirandoJogador(MascaraChao);
}
public void TomarDano(int dano)
{
status.Vida -= dano;
ScriptInterfaceControle.AtualizarSliderVidaJogador();
Script_Audio_Controle.instancia.PlayOneShot(SomDeDano);
if (status.Vida <= 0)
{
Morrer();
}
}
public void Morrer()
{
Time.timeScale = 0;
TextoGameOver.SetActive(true);
}
}