public void FixedUpdate()
{
if (!isFinished) {
float motor = maxMotorTorque * isAccelerating;
float brake = maxBrakeTorque * (1-isAccelerating);
//Maps current speed from 1 to 0.5f
//This makes it harder to turn at faster speeds
float mappedSpeed = Map (0, maxSpeed, 1f, 0.3f, mySpeed);
float steering = 0f;
if (isTurningLeft > 0) {
steering = maxSteeringAngle * -isTurningLeft * mappedSpeed;
} else if (isTurningRight > 0) {
steering = maxSteeringAngle * isTurningRight * mappedSpeed;
} else if (isNotTurning > 0) {
steering = 0;
}
//my speed goes above max speed sometimes so we need to fix that later on...
if (mySpeed > maxSpeed && motor > 0) {
motor = 0;
}
foreach (AxleInfo axleInfo in axleInfos) {
if (axleInfo.steering) {
axleInfo.leftWheel.steerAngle = steering;
axleInfo.rightWheel.steerAngle = steering;
}
if (axleInfo.motor) {
axleInfo.leftWheel.motorTorque = motor;
axleInfo.rightWheel.motorTorque = motor;
}
if (axleInfo.braking) {
axleInfo.leftWheel.brakeTorque = brake;
axleInfo.rightWheel.brakeTorque = brake;
}
}
}
}