I have a script that gets input from a Joystick. It works great for turning the wheels left or right, but I want the wheels to return to the initial position when I release the joystick. Any ideas?
if (joySteer.position.x != 0) {
float i = joySteer.position.x;
if(i < 0){
if(wheelAngle > -maxAngle){
wheelAngle -= turnSpeed*Time.deltaTime;
}else{
wheelAngle = -maxAngle;
}
}
if(i > 0){
if(wheelAngle < maxAngle){
wheelAngle += turnSpeed*Time.deltaTime;
}else{
wheelAngle = maxAngle;
}
}
frontRight.steerAngle = wheelAngle;
frontLeft.steerAngle = wheelAngle;
}
if (joySteer.position.x != 0) {
float i = joySteer.position.x;
if(i < 0)
{
if(wheelAngle > -maxAngle){
wheelAngle -= turnSpeed*Time.deltaTime;
}else{
wheelAngle = -maxAngle;
}
}
else if(i > 0) // use "else if" because if i was less than 0, how could it also be more than 0?
{
if(wheelAngle < maxAngle){
wheelAngle += turnSpeed*Time.deltaTime;
}else{
wheelAngle = maxAngle;
}
}
else // i == 0 means steering is centered
{
// bring wheelAngle closer to 0 to straighten wheels
float centeringAmount = turnSpeed*Time.deltaTime;
if (wheelAngle > 0)
{
wheelAngle -= centeringAmount;
if (wheelAngle < 0) wheelAngle = 0; // prevent correcting too much
}
else if (wheelAngle < 0)
{
wheelAngle += centeringAmount;
if (wheelAngle > 0) wheelAngle = 0;
}
}
frontRight.steerAngle = wheelAngle;
frontLeft.steerAngle = wheelAngle;
}