- Home /
Buggy Engine Sound (pitch)
Hello!
My engine sound works great for the first gear, but the pitch gets buggy once the car reaches second gear. Can anybody find what is causing the issue?
It has worked in the past, but adding the turbo functionality messed it up.
void EngineSound ()
{
int gears = gearRatio.Length;
int i;
for (i = 0; i < gears; i++) {
if (gearRatio [i] > currentSpeed) {
break;
}
}
float gearMinValue = 0.00f;
float gearMaxValue = 0.00f;
if (i == 0) {
gearMinValue = 0;
} else {
gearMinValue = gearRatio [i - 1];
}
// Turbo
if (turboOn == false && currentSpeed < topSpeed) {
gearMaxValue = gearRatio [i];
} else {
gearMaxValue = gearRatio [3];
}
if (started) {
float enginePitch = ((currentSpeed - gearMinValue) / (gearMaxValue - gearMinValue)) + 1;
GetComponent<AudioSource> ().mute = false;
// Turbo
if (turboOn == false && currentSpeed < topSpeed) {
GetComponent<AudioSource> ().pitch = enginePitch;
} else {
GetComponent<AudioSource> ().pitch = 1.7f;
}
} else {
GetComponent<AudioSource> ().mute = true;
}
}
Thanks a lot in advance!
Hard to understand what your code do but I don't see any sign of a "currentGear" value. $$anonymous$$aybe you should use that.
What I would do: - $$anonymous$$ake a $$anonymous$$ speed and max speed for each gear(what it seems you do) - Compare the speed with the $$anonymous$$ and max speed of the current gear and make a formula that would add or remove a float between 0 and something around 0.2 to the pitch
I've never had a currentGear value. The sound did work at one point, but I think it stopped working when I added the turbo functionality.
Your answer
Follow this Question
Related Questions
Array index is out of range - Why? 2 Answers
Engine Sound & Turbo 0 Answers
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
Flip over an object (smooth transition) 3 Answers