引子
最近项目有用到场景音效
稍微研究了下在Unity中该如何实现3D音效的效果
前提
基于 Unity3d 5.4 ,因为我用的是5.4 ,不清楚其他版本的问题
2D音效和3D音效的区别是,2D音效的声音不会随着距离改变而改变声音大小,3D音效有
所以,3D音效必须要依靠距离来确定声音大小
Unity 里面提供了声音监听器 AudioListener, 你可以理解为你的耳朵,就像Camera是你的眼睛一样
一般游戏里面,这个 AudioListener 监听器挂在 Camera 上。
Unity 提供AudioSound ,你可以理解为声音源
属性名 | 属性介绍 |
---|---|
AudioClip | 声音片段,还可以在代码中去动态的截取音乐文件 |
Mute | 是否静音 |
Bypass Effects | 是否打开音频特效 |
Play On Awake | 开机自动播放 |
Loop | 循环播放 |
Volume | 声音大小,取值范围0.0 到 1.0 |
Pitch | 播放速度,取值范围在 -3 到 3 之间 设置1 为正常播放,小于1 为减慢播放 大于1为加速播放 |
Stereo Pan | 立体声,-1 ~ 1 ,负值靠近左声道,正值靠近右声道 |
属性名 | 属性介绍 |
---|---|
Spatial Blend | 设置3D引擎对音频源有多大影响。值为0-1,0为2D音,1为3D音,可以使用曲线调节 |
Reverb Zone Mix | 混响区输出 |
3DSoundSetting
属性名 | 属性介绍 |
---|---|
Doppler Level | 确定应用于此音频源的多普勒效果(如果设置为0,则不应用效果)。 |
Volum Rolloff | 声音衰减类型 |
Min Distance | 最小衰减距离,比它小的不衰减 |
Max Distance | 最大衰减距离,比它大的也不衰减 |
还可以调节曲线让衰减声音听起来更平和,或更真实
实现
- 将 AudioListener 放置在 Camera 上
- 调节声音源参数,可实现多套预知,调用预知初始化声源,只设置声音片段和声音大小
- 声源跟随发声者移动