一、Unity 支持音效格式
常用的为 .mp3, .ogg, .wav
.wav 适用于较短的音效
.mp3 适用于较长的音效
.ogg 适用于较长的音效
下面以一个 .mp3 音效拖到Project 下,然后选中该音效,在Inspector面板显示其属性
Load Type:
DecompressOnLoad : 音效文件加载后为解压缩状态,好处是耗费CPU少。
CompressedInMemory :音效文件在内存中保持压缩状态,占用内存少,但是耗费CPU,当使用该音效时首先要CPU对其进行解压,然后才能使用。
Streaming : 当播放该音效时,从磁盘以流的形式加载音效数据,好处,占用内存最少,因为只有很少的缓冲数据占用内存。
二、播放音效
首先确认场景中有且只有一个对象挂载了 Audio Listerer 组件(一般摄像机上默认挂载一个)。
然后创建一个对象,添加 AudioSource 组件,将音效拖拽到 AudioClip 参数上,如下图
选中 Play On Awake(开始即播放)
运行游戏,即可听到播放的音效
下面先介绍一些 AudioSource 的一些常用参数
(1)Output 音效混合器
(2)Play On Awake 运行开始立即播放
(3)Loop 是否循环播放
(4)Priority 播放优先权(0 - 255),数值越小,优先级别越高
(5)Volume 播放音量
(6)Pitch 音高,默认为 1,大于1时提高音高,并且会加快播放速度,小于1,降低音高,减慢播放速度,但是数值偏离 1越大,越偏离原始声音
(7)Stereo Pan 立体声,默认为 0,当值为 -1时,只有左声道响,当值为 1时,只有右声道有声音
(8)Spatial Blend 当值为 0时为 2D音效,当值为 1 时为 3D音效
(9)Volume Rolloff 即随着和AudioLister 的距离变化,听到的音量变化曲线
(10)in Distance 当距离超过该数值时,声音开始衰减
(11) Max Distance 当距离超过该数值时,音量衰减为 0
三、通过代码控制播放以及上面所有参数的控制
一般不会使用直接将 音效拖拽到 AudioSource 的AudioClip参数上,因为那样做不利于管理,并且它会在 对象生成的时候立即加载音效到内存,并且不会释放。音效过多或是音效过大时相当耗费内存。 所以要对音效进行动态加载
音效混合器原理:
一、创建 AudioMixer
二、使用
Master 拖拽到一个AudioSource 组件的 Output 参数上
运行,播放音效,选中 AudioMixerDemo 在Inspectr 面板点击 Open,弹出面板如下
既然是音效混合器,一个音效混合是没有意义的,赋值几个挂载 AudioSource 组件的对象,分别拖上不同的音效,这样,几个 AudioSource 公用一个 Master,才会达到几种不同音效混合的效果,一般情况下一个音效混合组(AudioMixerGroup)是不够的,下面添加多个 AudioMixerGroup
(1) 点击 Groups 右边的 “ ”
(2)选中一个 Master 然后点击 将会给其添加一个子 AudioMixerGroup,即需要给谁添加子 AudioMixerGroup,就选中谁,然后点击 ,这些AudioMixerGroup是可以嵌套的
(3)此时回到 Project面板会发现多了两项 A,B
(4)再次运行程序,打开 AudioMixer
会看到 视图发生了变化,有三个显示音效变化的视图了,分别是 Master、A、B
(5)选择 A 然后点击 A 下面的 S 按钮,将停止除自己以外的其他音效的播放,结果为 B的播放将停止如下
选择 A 然后点击 A 下面的 M 按钮,结果 A 自身停止播放
三、开始编辑每一个 AudioMixerGroup
点击 AudioMixer 面板的 Editor in Play Mode 这样我们在运行状态下编辑的 Group,在停止运行时将保存
下面简单说几个效果的作用
选中一个 AudioMixerGroup 添加效果,有两种方法
或者下面方法
(1)Send 会将这个Group 的信号传递出去
(2)Receive 接收其他 Group 发出的信号
下面给 A 添加一个Send, 给B添加一个Receive
解决上面警告方法就是在 A 的Send 处设置接收者,即设置 B的Receive为接收者
这样A 发送的信号,B就能接受到了
(3)Duck Volume ,接收其他Group发送的信号,改变自己的一些属性,比如音量大小。
下面给 A 添加 Duck Volume ,给 B 添加 Send,将B的Send的接收者设置为 A 的 DuckVolume
然后设置A 的 Duck Volume 的一些属性,当该 Duck Volume 接收到 B Send 过来的信号,将改变自身的一些属性
比如当 播放 B Group 声音时,让A Group声音减小,就可以设置 A Duck Volume 的 Make -Up Gain 数值为 负数
(4) Low Pass 低通滤波器,即只允许低频率的音效播放出来,而高频率的音效不播放出来
(5)High Pass 高通滤波器,即只允许高频率的音效播放出来,而低频率的音效不播放出来
(6)Echo 回声,即添加该效果,该 Grop 播放的声音将会产生回音
(7)Flang镶边效果,用来产生奇怪的音效
下面还有好多,不一一列举,自己尝试即可。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved