var turnspeed = 5.0;
var speed = 5.0;
private var trueSpeed = 0.0;
var strafeSpeed = 5.0;
function Update () {
var roll = Input.GetAxis("Roll");
var pitch = Input.GetAxis("Pitch");
var yaw = Input.GetAxis("Yaw");
var strafe = Vector3(Input.GetAxis("Horizontal")*strafeSpeed*Time.deltaTime, Input.GetAxis("Vertical")*strafeSpeed*Time.deltaTime, 0);
var power = Input.GetAxis("Power");
//Truespeed controls
if (trueSpeed < 10 && trueSpeed > -3){
trueSpeed += power;
}
if (trueSpeed > 10){
trueSpeed = 9.99;
}
if (trueSpeed < -3){
trueSpeed = -2.99;
}
if (Input.GetKey("backspace")){
trueSpeed = 0;
}
rigidbody.AddRelativeTorque(pitch*turnspeed*Time.deltaTime, yaw*turnspeed*Time.deltaTime, roll*turnspeed*Time.deltaTime);
rigidbody.AddRelativeForce(0,0,trueSpeed*speed*Time.deltaTime);
rigidbody.AddRelativeForce(strafe);
}
First, comments go in the comments section; Second, the problem occurs at the top of your script. You defined constant variable, constant meaning unchangable. When you invoke those variables in your if statements, this goes against the constant. The better way to deal with this would be:
var turnSpeed;
var speed;
var trueSpeed;
var strafeSpeed;
function Update() {
turnSpeed = 5;
speed = 5;
trueSpeed = 0;
strafeSpeed = 5;
var roll = Input.GetAxis("Roll");
var pitch = Input.GetAxis("Pitch");
var yaw = Input.GetAxis("Yaw");
var strafe = Vector3(Input.GetAxis("Horizontal")*strafeSpeed*Time.deltaTime, Input.GetAxis("Vertical")*strafeSpeed*Time.deltaTime, 0);
var power = Input.GetAxis("Power")
if (trueSpeed < 10 && trueSpeed> -3) {
trueSpeed += power;
}
if (trueSpeed > 10){
trueSpeed = 9.99;
}
if (trueSpeed < -3){
trueSpeed = -2.99;
}
if (Input.GetKey("backspace")){
trueSpeed = 0;
}
rigidbody.AddRelativeTorque(pitch*turnspeed*Time.deltaTime, yaw*turnspeed*Time.deltaTime, roll*turnspeed*Time.deltaTime);
rigidbody.AddRelativeForce(0,0,trueSpeed*speed*Time.deltaTime);
rigidbody.AddRelativeForce(strafe);
}