意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

【Unity开发小技巧】Unity混音器Mixer控制全局音量

来源:恒创科技 编辑:恒创科技编辑部
2022-10-01 21:03:04


目录



【Unity开发小技巧】Unity混音器Mixer控制全局音量

​​一:前言​​

​​二:控制逻辑​​

​​三:制作混音器Mixer​​

​​1.创建MasterMixer,MusicMixer,soundEffectMixer​​

​​2.设置父子级关系​​

​​4.暴漏属性​​

​​四:编辑代码控制​​

​​五:Slider滑动条设置​​


【Unity开发小技巧】Unity混音器Mixer控制全局音量_右键

一:前言

从业多年一直没用过这个混音器工具,毕竟很很多功能都是尽可能的自己写代码控制,这样后期维护和修改都会很容易,最近有学生在咨询声音管理系统,特别是这个混音器怎么使用。趁这次机会赶紧去了解学习了一下,在此记录。这里只记录用混音器统一控制属性,其他的音频资源管理模块这里不涉及,以后有时间单独记录。

二:控制逻辑

我们常用的游戏音频类型主要还是分为三个种类:1.Music背景音乐(一直存在的)2.瞬时音效(即时生成)3.剧情配音(也可以归类于音效)。正常使用代码管理控制这些音效的时候,特别是对声音音量的管理设置,都是先分类管理再全部遍历然后设置音量,这种虽然说麻烦但是优点在于方便我们维护修改,另外一种就是把音量的控制逻辑或者其他的属性控制剥离出来交给混音器处理其实也很方便。这里我的思路是创建三个混音器一个全局Mixer,一个MusicMixer和一个SoundEffectMixer,其中全局的只对MusicMixer和SoundEffectMixer进行管理,然后具体的声音分别归SoundEffectMixer和MusicMixer管理。简单的话也可以直接做一个Mixer直接对音乐进行管理

【Unity开发小技巧】Unity混音器Mixer控制全局音量_ios_02

【Unity开发小技巧】Unity混音器Mixer控制全局音量_ide_03

三:制作混音器Mixer1.创建MasterMixer,MusicMixer,soundEffectMixer

鼠标右键创建混音器,修改名字为MasterMixer..,另外两个可以点击Mixers后面的加号创建也可以在外面右键创建。

【Unity开发小技巧】Unity混音器Mixer控制全局音量_unity 混音器_04


【Unity开发小技巧】Unity混音器Mixer控制全局音量_右键_05

2.设置父子级关系

1..点击加号创建music和sound

【Unity开发小技巧】Unity混音器Mixer控制全局音量_ide_06

2.把music和sound拖到master的子节点下面。并关联对应的Group下面的节点

【Unity开发小技巧】Unity混音器Mixer控制全局音量_unity 混音器_07

3.设置对应AudioSource

分别选中场景里的音乐,然后把对MasterMixer下对应的类型拖拽进音乐的Output槽内

【Unity开发小技巧】Unity混音器Mixer控制全局音量_右键_08


【Unity开发小技巧】Unity混音器Mixer控制全局音量_unity 混音器_09

4.暴漏属性

1.选中Mastermixer,2.再选中目标Mixer 3.找到右边Volume属性 4.在Volume上右键暴漏属性 5.修改属性名字f2

【Unity开发小技巧】Unity混音器Mixer控制全局音量_ios_10

三个Mixer都要暴漏出来


【Unity开发小技巧】Unity混音器Mixer控制全局音量_右键_11

四:编辑代码控制
public class Test : MonoBehaviour
{
public AudioMixer audioMixer;//MasterMixer
public AudioSource soundClick;//sound
public void SetAllVolume(Slider s)
{
audioMixer.SetFloat("MasterVolume", s.value);
}
public void SetMusicVolume(Slider s)
{
audioMixer.SetFloat("MusicVolume", s.value);
}
public void SetEffectVolume(Slider s)
{
audioMixer.SetFloat("EffectVolume", s.value);
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.P))
{
soundClick.Play();
}
}
}
五:Slider滑动条设置

1.根据混音器内音量的最大最小值设置slider的最大最小值[-40,0]

2.添加事件

【Unity开发小技巧】Unity混音器Mixer控制全局音量_右键_12

完结撒花

上一篇: 租用美国服务器:潜在的风险与应对策略。 下一篇: MongoDB 5.0 扩展开源文档数据库操作