• unity3D AudioMixer+Slider实现音量调节,多音效控制(主音量,背景音,特效音等)


    说明:

    目标:在游戏设置面板中调节多个种类的音效音量

    ①创建AudioMixer并配置

    Assets右键Create→AudioMixer修改名称,例如AudioSetting

    双击打开创建好的AudioSetting,打开是这样的面板,默认带一个Groups叫Master

    我们希望能调节主音量,背景音,特效音三种,目前只有一个音轨,并不符合我们的要求,

    需要新增两条音轨,比如叫背景音和特效音,点击Master后点右侧+加号新增音轨

     创建好了之后,并不能直接在代码里控制他们,因为需要将它们暴露出去,暴露出去后才能在代码控制

    下图中第二步选择以下英文

     我们需要将这三个依次重复上面的步骤,选中,暴露为代码,修改名称,请记住名称(大小写有区别),代码中要用

    当然,如果只需要控制一个主音量,请忽视新增的背景音和特效音

    这里,为了好理解,我将这三个分别设置为Main,Bgm,Texiao

     

    ②将音效片段中OutPut 指定音轨

    我们需要将Audio Source下的OutPut选中对应的音轨,

    例如这个音效是背景音,就选中Bgm音轨,特效音就选中Texiao音轨

    ③将 AudioMixer和Slider建立连接

    到了关键的一步,将以下代码挂在到画布上

     1 using System.Collections;
     2 using System.Collections.Generic;
     3 using UnityEngine;
     4 using UnityEngine.Audio;
     5 using UnityEngine.UI;
     6 
     7 public class CanvasSitting : MonoBehaviour
     8 {
     9     public Slider slider;               //滑动条
    10     public AudioMixer audioMixer; //声音混合器
    11 
    12     //控制主音量
    13     public void ControlMainVolume(float v)
    14     {
    15         audioMixer.SetFloat("Main", v);
    16     }
    17     //控制背景音量
    18     public void ControlBgmVolume(float v)
    19     {
    20         audioMixer.SetFloat("Bgm",v);
    21     }
    22     //控制特效音量
    23     public void ControlTexiaoVolume(float v)
    24     {
    25         audioMixer.SetFloat("Texiao", v);
    26     }
    27 }

    然后把滑动条和创建好的AudioMixer拖入代码公开变量中

    请忽视滑动条和AudiMixer以外的变量

    ④配置Slider,并添加事件

    此时需要更改三个Slider中的value值

    将Min Value 设置为-80,这个值并不是固定的,可以手动微调,代表音量最小值

    将Max Vlue 设置为0,这个代表音量最大值,也可手动调试

    给三个滑动条分别添加对应的事件函数

    点加号,将画布拖入,选择我们挂载在画布上代码,代码中有三个函数来分别控制着三个音量

    注意会出现上下两个一样的名称,请选择Dynamic float下面的函数名称

    到这里,完成了所有操作,请进入游戏试试音量调节吧.

    补充:

    当主音量没有声音时,其他的音量就算拉满也是没有声音的

    拖动没效果,记得看一下音效OutPut是否选择了音轨

    ⑤实现效果

     

    时间若流水,恍惚间逝去
  • 相关阅读:
    json_encode([0])
    try catch throw
    如何 lookback
    协程||进程
    客户错了?
    循环 php 变量会影响到传入的参数
    csv变成xls, csv乱码
    虚拟机不能git push
    数组下标大小写
    php 静态方法
  • 原文地址:https://www.cnblogs.com/alanshreck/p/14746347.html
Copyright © 2020-2023  润新知