はじめに
AudioMixer
のVolume
をスライダーを用いて変更したいと思った際、Volume
は-80~0
の範囲でSlider
は0~1
の値と少し厄介でした。
それらの変換方法について紹介をしたいと思います。
変換方法
volume
をスライダーの値、dB
をAudioMixer
のVolume
だとすると以下の式で表せます。
音の大きさ・dBデシベル・音圧・A特性とは?Excel計算式・距離・合成和 – 私は何から出来ているのか?
これをコードにするとこんな感じ。
public static float ConvertVolume2dB(float volume) => Mathf.Clamp(20f * Mathf.Log10(Mathf.Clamp(volume, 0f, 1f)), -80f, 0f); public static float ConvertDB2Volume(float db) => Mathf.Clamp(Mathf.Pow(10, Mathf.Clamp(db, -80, 0) / 20f), 0, 1);