i have added a run speed for left shift key… but when released my character controller wont slow back to walking speed how would i do this, here is a sample of my code…
[RequireComponent (typeof(CharacterController))]
public class firstpersoncontroler : MonoBehaviour {
public float runspeed = 30.0f;
public float JumpSpeed = 20.0f;
public float movementspeed = 5.0f;
public float mouseSensitivity = 10.0f;
public float updownrange = 60.0f;
float verticalrot = 0;
float verticalverlocity = 0;
CharacterController caractorcontroller;
// Use this for initialization
void Start () {
Screen.lockCursor = true;
caractorcontroller = GetComponent<CharacterController> ();
}
// Update is called once per frame
void Update () {
//rotation control
float rotleftright = Input.GetAxis ("Mouse X")* mouseSensitivity ;
transform.Rotate (0, rotleftright, 0);
verticalrot -= Input.GetAxis ("Mouse Y") * mouseSensitivity;
verticalrot = Mathf.Clamp (verticalrot, -updownrange, updownrange);
Camera.main.transform.localRotation = Quaternion.Euler (verticalrot, 0, 0);
//movement
// foraward, back, side step controlles
float forwardspeed = Input.GetAxis ("Vertical")* movementspeed;
float sidespeed = Input.GetAxis ("Horizontal")* movementspeed;
verticalverlocity += Physics.gravity.y * Time.deltaTime;
if (caractorcontroller.isGrounded && Input.GetButton ("Jump")) {
verticalverlocity = JumpSpeed;
}
if (Input.GetKeyDown(KeyCode.LeftShift)){
movementspeed = runspeed;
}
else if (Input.GetKeyUp(KeyCode.LeftShift)){
runspeed = movementspeed;
}
Vector3 speed = new Vector3 (sidespeed, verticalverlocity, forwardspeed);
// rotation control - add on
speed = transform.rotation * speed;
caractorcontroller.Move ( speed * Time.deltaTime );
}
}