Esse codigo abaixo é oque estou usando o personagem quando em linha reta com o eixo global anda normal, mais quando gira ele fica dando umas tiltada!! Video com trecho doque esta acontecendo
public class PlayerController : MonoBehaviour
{
private CharacterController controller;
private Rigidbody rb;
private Animator anim;
private float axiX;
public float speed = 6.0f;
public float jumpSpeed = 8.0f;
public float gravity = 20.0f;
public float rotSpeed = 200;
public float lenghtRay = 0.07f;
private float rot;
private Vector3 moveDirection;
void Start()
{
controller = GetComponent<CharacterController>();
anim = GetComponent<Animator>();
rb = GetComponent<Rigidbody>();
}
void Update()
{
Move();
}
void Move()
{
if (controller.isGrounded)
{
if (Input.GetKey(KeyCode.W))
{
moveDirection = Vector3.forward * speed;
}
if (Input.GetKeyUp(KeyCode.W))
{
moveDirection = Vector3.zero;
}
}
rot += Input.GetAxis("Horizontal") * rotSpeed * Time.deltaTime;
transform.eulerAngles = new Vector3(0, rot, 0);
moveDirection.y -= gravity * Time.deltaTime;
moveDirection = transform.TransformDirection(moveDirection);
controller.Move(moveDirection * Time.deltaTime);
}
}