Quando o personagem atira ele fica deslizando como se um vento estivesse carregando ele. Quando inicio o jogo sem atirar o personagem se movimenta normalmente. Alguém sabe a possível origem desse problema?
Vou deixar o código abaixo, mas não acredito que o erro esteja no código.
BALA
public class Bala : MonoBehaviour{
public float VelocidadeBala = 20;
void FixedUpdate(){
GetComponent<Rigidbody>().MovePosition(GetComponent<Rigidbody>().position + transform.forward * VelocidadeBala * Time.deltaTime);
}
}
CONTROLA ARMA
public class ControlaArma : MonoBehaviour{
public GameObject Bala;
public GameObject CanoDaArma;
void Start(){
}
void Update(){
if (Input.GetButtonDown("Fire1")){
//Instantiate cria novos objetos. Nesse caso, as balas dos tiros
Instantiate(Bala, CanoDaArma.transform.position, CanoDaArma.transform.rotation);
}
}
}
CONTROLA JOGADOR
public class ControlaJogador : MonoBehaviour{
public float Velocidade = 10;
Vector3 direcao;
void Update(){
float eixoX = Input.GetAxis("Horizontal");
float eixoZ = Input.GetAxis("Vertical");
direcao = new Vector3(eixoX, 0, eixoZ);
//Com o GetComponent, a linha abaixo se torna desnecessária. Esse código faz com que a tela não fique tremendo quando o personagem colide
//transform.Translate(direcao * Velocidade * Time.deltaTime);
if(direcao != Vector3.zero){
GetComponent<Animator>().SetBool("Movendo", true);
} else {
GetComponent<Animator>().SetBool("Movendo", false);
}
}
void FixedUpdate(){
//É executado 50 frames por segundo
GetComponent<Rigidbody>().MovePosition(GetComponent<Rigidbody>().position - (direcao * Velocidade * Time.deltaTime));
}
}