Unity の Audio Mixer を使って、オーディオの音量を調整する方法を書いていきます。
バージョン
- Unity 2021.3.14f1(LTS)
1. Audio Mixer の追加
プロジェクトウィンドウのフォルダ(Assets など)を右クリックして、「作成」→「オーディオミキサー」を選択します。
オーディオミキサーが作成できたら、名前を「AudioMixer」に変更します。
2. グループの作成
追加したオーディオミキサーをダブルクリックして、オーディオミキサーのウィンドウを開きます。それから、グループの「+」をクリックして、BGM や SE などのグループを作成します。
3. Volume の公開
追加したグループを選択して、インスペクターのボリュームを右クリックして公開(Expose)します。
公開したら「Exposed Parameters」を開いて、パラメーターをダブルクリックして名前を「bgmVolume」などに変更します。
4. スクリプトの追加
ヒエラルキーウィンドウで空のオブジェクトを作成して、以下のスクリプトをアタッチします。
Audio.cs
using UnityEngine; using UnityEngine.Audio; public class Audio : MonoBehaviour { public AudioMixer mixer; public AudioSource[] bgm; private AudioSource playingBgm = null; internal void PlayBgm(int i) { if (playingBgm != null) { return; } playingBgm = bgm[i]; playingBgm.Play(); } internal void StopBgm() { if (playingBgm == null) { return; } playingBgm.Stop(); playingBgm = null; } internal void SetBgmVolume(float decibel) { mixer.SetFloat("bgmVolume", decibel); } }
AudioMixer の SetFloat メソッドで音量を設定することができます。第一引数は、先ほど公開したパラメーター名を指定します。
mixer.SetFloat("bgmVolume", decibel);
スクリプトをアタッチしたら、インスペクターでオーディオミキサーを設定します。
5. オーディオファイルの追加
再生するオーディオファイル(MP3など)をヒエラルキーウィンドウに追加して、インスペクターで以下の設定をします。
- 出力をオーディオミキサーのグループに設定
- ゲーム開始時に再生のチェックを外す
6. オーディオソースの設定
スクリプトのインスペクターを表示して、オーディオファイルのオブジェクトを設定します。
これで、スクリプトのメソッドを呼び出して再生や音量調節ができます。
補足. デシベルについて
音量の設定でデシベルを使いますが、Unity の場合は +20dB ~ -80dB(無音)が設定可能です。
AudioGroup インスペクター - Unity マニュアル
デフォルトは 0dB になります。