【发布时间】:2019-06-13 22:27:53
【问题描述】:
我需要根据速度改变汽车的音高。 目前我正在使用的答案是: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 时,它会停止播放声音,即使我刹车并从零速开始也不会再播放
由于我是初学者中级,我认为这是因为我的汽车刚体是运动学的,但我不知道正确的原因和任何解决方案。
【问题讨论】:
-
当您的当前速度在您的最高速度限制内时,音高是否会减小?
-
当您当前的速度在您的最高速度限制范围内时,您的音高变量是否会减小?
-
不,在最高速度时它不会降低,但是当我降低速度时它会降低但不播放任何声音
-
你尝试过转换吗?获取组件()。 Pitch =0.5 + (currentSpeed/topSpeed)
标签: c# android unity3d audio soundeffect