I'm making a basic flight script for an assignment, but I'm having a huge problem. I can get the object its applied on moving, but if it stops it won't start again. it just stops and doesn't do anything. Here's the script var YawSpeed = 15.0; var TurnSpeed = 15.0; var ElevateSpeed = 5.0; var Acceleration = 0.2; var Deceleration = 0.3; var MaxSpeed = 20.0; private var Speed = 0.0; function Update () { if(Speed > MaxSpeed) { Speed = MaxSpeed; } if (Speed < 0.0) { Speed = 0; } if(Speed <= (MaxSpeed/3)) { rigidbody.useGravity = true; } else { rigidbody.useGravity = false; } transform.Translate(Vector3.forward *Speed* Time.deltaTime); if(Input.GetAxis("Accelerate")) { Speed = Speed + Acceleration; } if (Input.GetAxis("Decelerate")) { Speed = Speed - Deceleration; } if (Input.GetAxis("Menu")) { Application.LoadLevel("Pause Menu"); } transform.Rotate(0,Input.GetAxis("Turn") * YawSpeed * Time.deltaTime,0); transform.Rotate(0,0,Input.GetAxis("Yaw") * TurnSpeed * Time.deltaTime); transform.Rotate(Input.GetAxis("Elevate") * ElevateSpeed * 2 *Time.deltaTime,0,0); } Any ideas?