1、打开 Unity,新建一个空工程,然后向工程导入一些音频文件,具体如下图
2、在场景中,新建GameObject,修改名字为 BackgroundMusic,并添加一个 AudioSource,勾选 Loop,然后把BackgroundMusic 音频文件赋值上去,具体如下图
3、同理新建 SoundEffect_One,和 SoundEffect_Two,添加 AudioSource,取消勾选 Play On Awake,并把对应音频赋值上去,具体如下图
4、在工程中新建脚本 PlaySoundEffect_One,用来监控按下 E 键,播放 SoundEffect_One 音效,并把脚本挂载到场景中的 SoundEffect_One 游戏物体上 ,具体如下图
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 游戏物体上,具体如下图
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,对应播放音效,具体如下图
9、在场景中添加UI,用来控制音量的调节,具体的UI布局如下图
10、然后在工程中右键 Create -- Audio Mixer,然后创建一个 Audio Mixer ,修改名称为 MasterMixer,具体如下图
11、双击 MasterMixer,显示 Mixer 编辑窗口,然后点击 “Group”后面的 “+”,添加两个组,分别命名为 BackgroundMusic 和 SoundEffect,具体如下图
12、接着把 MasterMixer 中新添加的BackgroundMusic 和 SoundEffect 组,分别赋值给场景中的BackgroundMusic和 SoundEffect 游戏物体的 AudioSource 中的 output,具体如下图
13、选中 MasterM坡纠课柩ixer 中的 Master,在 Inspector 中的 Attenuation 中的 Volume 右键 勾选 Expose ‘Volume(of Master)’to script,把 Master 音量调节的参数暴露出来,具体如下图
14、然后点击 Audio Mixer 的编辑面板上的 Exposed Parameters ,就会看到之前 Expose 的参数,右键 Rename,命名为 “MasterVolume”,便于后期代码控制,具体如下图
15、同理把 MasterMixer 中的 BackgroundMusic 和 SoundEffect 中的同样暴露Volume,并且重新命名,结果如下
16、在工程中新建脚本 AudioMixerManager,用来控制之前暴露出来的 Volume 参数,通过脚本,调节音量大小,具体如下图
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 进行赋值,具体如下图
19、然后把 UI 中的Master、BackgroundMusic、SoundEf酆璁冻嘌fect 对应调节Slider添瑕铆幌约加事件,分别添加SetMasterVolume 、SetBackgroundMusicVolume、SetSoundEffectVolume 函数接口事件,具体如下图
20、由于 AudioMixer 的音量调节的数值为 -80,20,所以对应的UI 中的Master、BackgroundMusic、SoundEffect的调节Slider 的 Min Value 和 Max Value 分别调整为 -80,20,具体如下图
21、运行场景,这样就可以通过调节对应的Slider 进行音量大小的调节了,具体如下图