Мне нужно изменить высоту звука моего автомобиля в зависимости от скорости.В настоящее время я использую решение ответа, который: https://answers.unity.com/questions/1067016/car-engine-sound-code-unity5car-engine-sound-code.html
public float topSpeed = 100; // km per hour
private float currentSpeed = 0;
private float pitch = 0;
void Update ()
{
currentSpeed = transform.GetComponent<Rigidbody>().velocity.magnitude * 3.6f;
pitch = currentSpeed / topSpeed;
transform.GetComponent <AudioSource> ().Pitch = pitch;
}
В соответствии с этим начальный pitch
является 0
И он меняется в соответствии с моим currentSpeed
Т.е. - currentSpeed
/ topSpeed
поэтому, когда мой текущий speed = topSpeed
pitch
будет 1
, и это хороший подход. Но в моем случае он воспроизводит звук, но когда однажды моя машина достигает topSpeed
, он перестает воспроизводить звук, и никогда не воспроизводит его.опять же, даже если я притормаживаю и начинаю с нулевой скорости
Поскольку я новичок в промежуточном звене, я думаю, что это из-за того, что мое твердое тело автомобиля кинематическое, но я не знаю правильной причины и какого-либо решения этого.