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

Meu Personagem esta se movendo sempre um pouco para frente

Olá a todos,

Poderiam me ajudar, meu personagem jogador esta se movendo sempre para frente, mesmo quando eu dou um click para traz, ele move para traz e dar uns passos para frente, isso ocorre também quando ando pros lados e ao andar para frente parece que ele tem um turbo e anda mais rápido.

3 respostas

Oi, Leandro, tudo bem?

Como está seu código até o momento? Pode colar aqui?

segue o código:

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

public class ControlaJogador : MonoBehaviour { public float Velocidade;

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

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

    transform.Translate(direcao * Velocidade * Time.deltaTime);

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


}

}

solução!

Henrique, não precisa verificar o que estava ocorrendo, após da continuidade nas aulas e inserir a física nos objetos e alterar os códigos, o problema sumiu. mesmo assim obrigado.

meu código esta assim agora:

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

public class ControlaJogador : MonoBehaviour { public float Velocidade; Vector3 direcao;

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);
    }


}

private void FixedUpdate()
{
    GetComponent<Rigidbody>().MovePosition
        (GetComponent<Rigidbody>().position + direcao * Velocidade * Time.deltaTime);
}

}