i am using the following script
var speed : float = 10;
var gravity : float = 20;
var rotateSpeed : float = 5;
function Update () {
var controller : CharacterController = GetComponent(CharacterController);
if(controller.isGrounded && Input.GetKey("up"))
{
moveDirection = Vector3(0, 0, speed);
moveDirection = transform.TransformDirection(moveDirection);
}
transform.Rotate(0, Input.GetAxis("Horizontal") * rotateSpeed * Time.deltaTime, 0);
moveDirection.y -= gravity * Time.deltaTime;
controller.Move(moveDirection * Time.deltaTime);
}
but for some reason the player does not move at the speed i declared in the speed variable for some time after the level has loaded, this time is sometimes after a couple of seconds and i often just give up waiting it takes so long. is there something wrong with my script or just a bug in unity?