我有
audioMixerGroup.audioMixer.GetFloat("AllVolume", out tmp);
tmp 将具有 db 中的体积。我想将 db (-80, 0) 转换为滑块的值 (0, 1)。
简而言之,我需要做How to set a Mixer's volume to a slider's volume in Unity?恰好相反
您可以创建一个
Remap
函数:
float Remap(float value, float min1, float max1, float min2, float max2)
{
return min2 + (value - min1) * (max2 - min2) / (max1 - min1);
}
实施:
audioMixerGroup.audioMixer.GetFloat("AllVolume", out tmp);
slider.value = Remap(tmp, -80f, 0f, 0f, 1f);
设置音量时,您将使用以下代码:
Mathf.Log10(value) *20;
你需要的是逆:
Mathf.Pow(10, (value/20);
当您需要使用 tmp 变量时,我会执行以下操作:
(tmp + 80f) * 0.01f