什么是AudioMixer
中文名:混音器
官方解释:是一种可由音频源 (AudioSource) 引用的资源,能够对通过音频源生成的音频信号进行更复杂的线路规划和混音。
原理
AudioMixer使用
创建空物体,并挂载Audio Source
既然是混音,挂载一个就没意思,最少两个或两个以上Audio Source
创建Audio Mixer
Project面板右键->Audio Mixer
打开Audio Mixer窗口
Window->Audio Mixer
会自动识别Project里的.mixer文件(Audio Mixer创建的文件),如刚刚创建的AudioMixerMusic
创建子AudioMixerGroup
想添加几个音效,就添加几个子AudioMixerGroup,我这是两个音效,就添加两个
让各个子Groups与各音效匹配
把Groups添加到Audio Source组件下的Output里,这样就可以开始调试音效了
如下图:Pads的Track1Loop-Pads音效与Audio Mixer下的子Groups的Pads连接,Agitated strings的Track2Loop-Agitated strings音效与Audio Mixer下的子Groups的AgitatedStrings连接
编辑每一个 AudioMixerGroup
- 运行Unity,声音就会播放
- 进入Audio Mixer界面,点击Edit in Play Mode进入编辑模式
- 选择要编辑的Groups,如下图要编辑Pads音效,则右边会先显现Pads音效编辑面板
步骤如下图
运行时编辑可以时刻查看音效变化
为音效添加效果
两种添加方式
1.在音频组添加
单击现有音频组(混音器中必须至少有一个)并选择“Add child group”或“Add sibling group”。
2.在Inspector面板添加
选中要编辑的音频组,即可在Inspector面板看到“Add Effect”按钮,点击即可添加
常见的音效
Send 会将这个Group 的信号传递出去
Receive 接收其他 Group 发出的信号
如:给Pads设置为发射者(Send),AgitatedStrings设置为接收者(Receive)
出现警告
原因:因为没设置Send发送给谁,Receive不知道接收谁的信号
解决办法:设置Pads的Send下的Receive
这样Pads发送的信息就到AgitatedStrings了
程序调用
暴露参数
方便程序中获取和传递参数
如:获取Send的Send level值或改变
方式
选择要暴露的参数。如:Send level,单击右键(要点击到Send level),选择第一个,即可在Exposed Parameters上查看所添加的参数,也可以更改函数名
代码调用
audioMixer.SetFloat("暴露参数名称", 暴露参数新值);
如:audioMixer.SetFloat("MyExposedParam", 88); //改变设置的暴露参水的值
部分功能详解
界面
Mixers
创建的Audio Mixer
Snapshots
在混音器中创建、切换和调整不同的快照。快照为混音器的子资源,可以在脚本中访问
如下图:创建的两个快照,两组同样的音频资源,不同的音频混音设置
Groups
音频组,包含音频资源和音频设置,是混合效果的关键
Views
允许在混音器中创建若干组可见的音频组。效果类似于Snapshots,作用方向不同
如下图:view比second View多一个音效
音频组
S按钮,将停止除自己以外的其他音效的播放
M按钮,自身停止播放