游戏开发在Unity内添加音效并用自带AudioMixer设计音效

游戏开发在Unity内添加音效并用自带AudioMixer设计音效

首页模拟经营模拟音效解压器更新时间:2024-07-27

一、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