音频文件导入

  • 常用格式:wavmp3oggaiff

音效系统的组成

音效系统由两个脚本组成:Audio Source音频源AudioListener音频监听

  1. 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参数成正比应用
  1. AudioListener 音频监听脚本

默认挂载在主摄像机上,一个用来收声的脚本,只用在主摄像机上有就可以了。

代码控制音频源

  1. 得到音频源脚本
1
AudioSource audioSource = this.GetComponent<AudioSource>();
  1. 控制播放停止
  • 播放音效
1
audioSource.Play();

也可以延迟播放,参数填延迟的秒数:

1
audioSource.PlayDelayed(5);
  • 停止音效
1
audioSource.Stop();
  • 暂停音效
1
audioSource.Pause();

停止暂停和暂停后Play效果是一样的,都会继续播放当前的音效。

停止(Stop)会重置播放状态,暂停(Pause)会保留当前播放位置。

  1. 检测音频源播放完毕
1
2
3
4
if(audioSource.isPlaying)
{
// 内部逻辑
}

值得注意的是:一个GameObject可以挂载多个音效源脚本AudioSource,使用时要注意如果挂载多个,一定要自己管理他们,控制他们的播放、停止。