Unity之音效系统
音频文件导入
- 常用格式:
wav、mp3、ogg、aiff
音效系统的组成
音效系统由两个脚本组成:Audio Source音频源和AudioListener音频监听。
- Audio Source 音频源
- AudioClip:音频文件
- Output:输出装置。默认输出到场景中的音频监听器(MainCamera上的Audio Listener),可以更改为输出到混音器
- Mute:静音开关
- Bypass Effect:开关滤波器效果
- Bypass Listener Effects:快速开关所有监听器
- Bypass Reverb Zones:快速开关所有混响区
- Play On Awake:对象创建时就播放音乐
- Loop:循环
- Priority:优先级。很多音效同时播放时,优先级越高越不容易被覆盖
- Volume:音量大小
- Pitch:音高。游戏加速时可以使用
- Stereo Pan:左右声道
- Spatial Blend:近大远小的效果
- Reverb Zone Mix:到混响区的输出信号量
- 3D Sound Settings:和Spatial Blend参数成正比应用
- AudioListener 音频监听脚本
默认挂载在主摄像机上,一个用来收声的脚本,只用在主摄像机上有就可以了。
代码控制音频源
- 得到音频源脚本
1 | AudioSource audioSource = this.GetComponent<AudioSource>(); |
- 控制播放停止
- 播放音效
1 | audioSource.Play(); |
也可以延迟播放,参数填延迟的秒数:
1 | audioSource.PlayDelayed(5); |
- 停止音效
1 | audioSource.Stop(); |
- 暂停音效
1 | audioSource.Pause(); |
停止暂停和暂停后Play效果是一样的,都会继续播放当前的音效。
停止(Stop)会重置播放状态,暂停(Pause)会保留当前播放位置。
- 检测音频源播放完毕
1 | if(audioSource.isPlaying) |
值得注意的是:一个GameObject可以挂载多个音效源脚本AudioSource,使用时要注意如果挂载多个,一定要自己管理他们,控制他们的播放、停止。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 MeiMeiBlog!








