Sorry if there are obvious answers to this, but I’ve searched everywhere and I can’t figure out why my character isn’t moving anywhere with this code.
The character turns and animates as if he is walking, but he won’t actually move, could anyone point out an error in the code?
private var walkSpeed : float = 1.0;
private var gravity = 100.0;
private var moveDirection : Vector3 = Vector3.zero;
private var charController : CharacterController;
function Start()
{
charController = GetComponent(CharacterController);
animation.wrapMode = WrapMode.Loop;
}
function Update ()
{
if(charController.isGrounded == true)
{
if(Input.GetAxis(“Vertical”) > .1)
{
if(Input.GetButton(“Run”))
{
animation.CrossFade(“run”);
walkSpeed = 4;
}
else
{
animation[“walk”].speed = 1;
animation.CrossFade(“walk”);
walkSpeed = 1;
}
}
else if(Input.GetAxis(“Vertical”) < -.1)
{
animation[“walk”].speed = -1;
animation.CrossFade(“walk”);
walkSpeed = 1;
}
else
{
animation.CrossFade(“idle”);
}
// Create an animation cycle for when the character is turning on the spot
if(Input.GetAxis(“Horizontal”) !Input.GetAxis(“Vertical”))
{
animation.CrossFade(“walk”);
}
transform.eulerAngles.y += Input.GetAxis(“Horizontal”);
// Calculate the movement direction (forward motion)
moveDirection = Vector3(0,0, Input.GetAxis(“Vertical”));
moveDirection = transform.TransformDirection(moveDirection);
}
moveDirection.y -= gravity * Time.deltaTime;
charController.Move(moveDirection * (Time.deltaTime * walkSpeed));
}