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

2025-10-13 14:51:25

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 class 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 class 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、选中 MasterMixer 中的 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;

public 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、SoundEffect 对应调节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使用及统一管理音量

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢