El volumen de un AudioSource usa un valor lineal:
0 = silencio
1 = volumen completo
audioSource.volume = 0.5f;
Los mixers suelen usar decibeles.
Un slider lineal no debería enviarse directamente como dB.
float db = Mathf.Log10(valorLineal) * 20f;
Ejemplo:
float volumen = 0.5f;
mixer.SetFloat(
"MasterVolume",
Mathf.Log10(volumen) * 20f
);
No usar exactamente 0.
volumen = Mathf.Max(volumen, 0.0001f);
public void CambiarVolumen(float valor)
{
valor = Mathf.Max(valor, 0.0001f);
float db =
Mathf.Log10(valor) * 20f;
mixer.SetFloat(
"MasterVolume",
db
);
}
audioSource.volume
Mathf.Log10(valor) * 20f
AudioMixer.SetFloat(...)