Unity AudioMixer 之 Mixer使用及统一管理音量

时间:2024-10-16 00:32:42

1、打开 Unity,新建一个空工程,然后向工程导入一些音频文件,具体如下图

Unity AudioMixer 之 Mixer使用及统一管理音量
Unity AudioMixer 之 Mixer使用及统一管理音量

2、在场景中,新建GameObject,修改名字为 BackgroundMusic,并添加一个 AudioSource,勾选 Loop,然后把BackgroundMusic 音频文件赋值上去,具体如下图

Unity AudioMixer 之 Mixer使用及统一管理音量

3、同理新建 SoundEffect_One,和 SoundEffect_Two,添加 AudioSource,取消勾选 Play On Awake,并把对应音频赋值上去,具体如下图

Unity AudioMixer 之 Mixer使用及统一管理音量
Unity AudioMixer 之 Mixer使用及统一管理音量

4、在工程中新建脚本 PlaySoundEffect_One,用来监控按下 E 键,播放 SoundEffect_One 音效,并把脚本挂载到场景中的 SoundEffect_One 游戏物体上 ,具体如下图

Unity AudioMixer 之 Mixer使用及统一管理音量
Unity AudioMixer 之 Mixer使用及统一管理音量
Unity AudioMixer 之 Mixer使用及统一管理音量

5、PlaySoundEffect_One 脚本具体内容如下:using UnityEngine;public cl锾攒揉敫ass PlaySoundEffect_One : MonoBehaviour{ // 音频源组件参数 private AudioSource audioSource; void Start() { // 获取音频源组件 audioSource = GetComponent<AudioSource>(); } void Update() { // 监控按下 E 键,进行特效音的播放 if (Input.GetKeyDown(KeyCode.E)) { audioSource.Play(); } }}

6、同理新建脚本 PlaySoundEffect_Two,按下 Q 键播放SoundEffect_Two 音频,并把脚本挂载到到场景中的SoundEffect_Two 游戏物体上,具体如下图

Unity AudioMixer 之 Mixer使用及统一管理音量
Unity AudioMixer 之 Mixer使用及统一管理音量
Unity AudioMixer 之 Mixer使用及统一管理音量

7、PlaySoundEffect_Two 脚本具体内容如下:using UnityEngine;public cl锾攒揉敫ass PlaySoundEffect_Two : MonoBehaviour{ // 音频源组件参数 private AudioSource audioSource; void Start() { // 获取音频源组件 audioSource = GetComponent<AudioSource>(); } void Update() { // 监控按下 Q 键,进行特效音的播放 if (Input.GetKeyDown(KeyCode.Q)) { audioSource.Play(); } }}

8、然后运行场景,背景音乐正常播放,分别按下 Q 或者 E,对应播放音效,具体如下图

Unity AudioMixer 之 Mixer使用及统一管理音量

9、在场景中添加UI,用来控制音量的调节,具体的UI布局如下图

Unity AudioMixer 之 Mixer使用及统一管理音量

10、然后在工程中右键 Create -- Audio Mixer,然后创建一个 Audio Mixer ,修改名称为 MasterMixer,具体如下图

Unity AudioMixer 之 Mixer使用及统一管理音量

11、双击 MasterMixer,显示 Mixer 编辑窗口,然后点击 “Group”后面的 “+”,添加两个组,分别命名为 BackgroundMusic 和 SoundEffect,具体如下图

Unity AudioMixer 之 Mixer使用及统一管理音量

12、接着把 MasterMixer 中新添加的BackgroundMusic 和 SoundEffect 组,分别赋值给场景中的BackgroundMusic和 SoundEffect 游戏物体的 AudioSource 中的 output,具体如下图

Unity AudioMixer 之 Mixer使用及统一管理音量
Unity AudioMixer 之 Mixer使用及统一管理音量

13、选中 MasterM坡纠课柩ixer 中的 Master,在 Inspector 中的 Attenuation 中的 Volume 右键 勾选 Expose ‘Volume(of Master)’to script,把 Master 音量调节的参数暴露出来,具体如下图

Unity AudioMixer 之 Mixer使用及统一管理音量

14、然后点击 Audio Mixer 的编辑面板上的 Exposed Parameters ,就会看到之前 Expose 的参数,右键 Rename,命名为 “MasterVolume”,便于后期代码控制,具体如下图

Unity AudioMixer 之 Mixer使用及统一管理音量
Unity AudioMixer 之 Mixer使用及统一管理音量

15、同理把 MasterMixer 中的 BackgroundMusic 和 SoundEffect 中的同样暴露Volume,并且重新命名,结果如下

Unity AudioMixer 之 Mixer使用及统一管理音量

16、在工程中新建脚本 AudioMixerManager,用来控制之前暴露出来的 Volume 参数,通过脚本,调节音量大小,具体如下图

Unity AudioMixer 之 Mixer使用及统一管理音量
Unity AudioMixer 之 Mixer使用及统一管理音量
Unity AudioMixer 之 Mixer使用及统一管理音量

17、AudioMixerManager 耔阵式肥脚本的具体内容如下:using UnityEngine;using UnityEngine.Audio;publi艘早祓胂c class AudioMixerManager : MonoBehaviour{ // 进行控制的Mixer变量 public AudioMixer audioMixer; /// <summary> /// 控制主音量的函数 /// </summary> /// <param name="volume"></param> public void SetMasterVolume(float volume) { // MasterVolume为我们暴露出来的Master的参数 audioMixer.SetFloat("MasterVolume", volume); } /// <summary> /// 控制背景音乐音量的函数 /// </summary> /// <param name="volume"></param> public void SetBackgroundMusicVolume(float volume) { // MusicVolume为我们暴露出来的Music的参数 audioMixer.SetFloat("BackgroundMusicVolume", volume); } /// <summary> /// 控制音效音量的函数 /// </summary> /// <param name="volume"></param> public void SetSoundEffectVolume(float volume) { // SoundEffectVolume为我们暴露出来的SoundEffect的参数 audioMixer.SetFloat("SoundEffectVolume", volume); }}

18、脚本编译正确后,回到 Unity,然后在场景中,新建 GameObject,把脚本AudioMixerManager 挂载上去,把 MasterMixer 进行赋值,具体如下图

Unity AudioMixer 之 Mixer使用及统一管理音量

19、然后把 UI 中的Master、BackgroundMusic、SoundEf酆璁冻嘌fect 对应调节Slider添瑕铆幌约加事件,分别添加SetMasterVolume 、SetBackgroundMusicVolume、SetSoundEffectVolume 函数接口事件,具体如下图

Unity AudioMixer 之 Mixer使用及统一管理音量

20、由于 AudioMixer 的音量调节的数值为 -80,20,所以对应的UI 中的Master、BackgroundMusic、SoundEffect的调节Slider 的 Min Value 和 Max Value 分别调整为 -80,20,具体如下图

Unity AudioMixer 之 Mixer使用及统一管理音量

21、运行场景,这样就可以通过调节对应的Slider 进行音量大小的调节了,具体如下图

Unity AudioMixer 之 Mixer使用及统一管理音量
© 手抄报圈