概要
Addressables 化した AudioMixer を Addressables 外から扱うには、LoadAssetAsync で取得する必要があります。
その手間をシングルトンで解決したAudioMixerManager
を作りました。
Group や Parameter を Enum で指定したり、複数の Parameter をまとめて変更したりできます。
使用例.cs
// audioSource に SE の AudioMixerGroup を代入
audioSource.outputAudioMixerGroup = AudioMixerManager.GetMixerGroup(AudioMixerGroupEnum.SE);
// 音量を 1 に変化(5秒の InSine に合わせて)
AudioMixerManager.SetVolume(AudioMixerParameterEnum.SeVolume, 1f, 5f, Ease.InSine);
// BGM と SE のピッチを 1.2 に変化(2秒の OutBounce に合わせて)
AudioMixerManager.SetParameters(1.2f, 2f, Ease.OutBounce,
AudioMixerParameterEnum.BgmPitch,
AudioMixerParameterEnum.SePitch);
コード
導入方法
- DoTween と Addressables と UniTask を導入します(無くても修正すれば使えます)。
- AudioMixerManager.cs をプロジェクト内に置きます。
- AudioMixer にある
AudioMixerGroup, Snapshot, Exposed Parameters
を AudioMixerManager.cs 内の3つの Enum に反映します。 - AudioMixer を "AudioMixer" という名前で Addressables に登録します。
関数説明
関数名 | 説明 |
---|---|
GetMixerGroup | Enum の名前と一致する AudioMixerGroup を取得 |
GetMixerGroups | Enum の名前と一致する AudioMixerGroup を全て取得 |
GetSnapshot | Enum の名前と一致する AudioMixerSnapshot を取得 |
TransitionToSnapshot | 特定の Snapshot の weight を変更 |
TransitionToSnapshots | 複数の Snapshot の weight を個別に変更 |
TransitionToSnapshots | 複数の Snapshot の weight をまとめて変更 |
TransitionBeTweenSnapshot | fromSnapshot の weight を 0 に、 toSnapshot の weight を 1 に変更 |
GetParameter | Enum の名前と一致する Parameter の値を取得 |
SetParameter | Enum の名前と一致する Parameter を変更 |
SetParameters | 複数の Parameter をまとめて変更 |
GetVolume | Enum の名前と一致する Parameter の値を デシベルから音量に変換して取得 |
SetVolume | Enum の名前と一致する Parameter の値を 音量からデシベルに変換して変更 |
SetVolumes | 複数の Parameter を 音量からデシベルに変換してまとめて変更 |