Unity声音系统调研

1,612 阅读2分钟

一、Unity支持的音频格式

  • ogg:适用于较长的音乐文件,可用作背景音乐
  • mp3:适用于较长的音乐文件,可用作背景音乐
  • wav:适用于较短的音乐文件,可用作音效
  • AIFF:适用于较短的音乐文件,可用作音效

二、播放音乐用到的几个重要的类

1、Audio Source

  • Audio Clip:声音片段。指定需要播放的音频文件。

  • Output: 音频剪辑通过音频混合器输出。

  • Play On Awake:游戏运行起来后就开始播放。

  • Mute:静音。

  • Loop:是否循环播放。

  • Priority: 播放的优先级,0最高,256最低。

  • Volume:音量。

  • Pitch:音调。改变音调(Pitch)值,可以减速/加速音频剪辑的播放。1是正常播放速度。

  • Stereo Pan:立体声(-1左声道, 1右声道)

  • Spatial Blend:空间混合,设置声音是2D声音,还是3D声音。3D声音距离音源的距离会影响听到声音的大小,2D声音不会影响。

  • Spread: (3D)立体声在扬声器空间中的传播速度;

  • Volume Rolloff:对数模式、线性模式、自定义模式;

  • Min/Max Distance: 衰减距离的开始结束,最小距离(声音保持最大量),最大距离(不再衰减) 。

2、Audio Listener

游戏中的声音接收器,一般位于 Main Camera 游戏对象上, 它可以接收游戏中的所有音乐和音效(只要其所附加的游戏物体在音效的影响范围内),此外,每一个 Scene 中仅有一个 Audio Listener。

3、Audio Mixer 混音器系统,可用于分开控制背景音乐和音效音乐的开关和大小。

4、AudioSettings

音频管理器(Edit-->ProjectSetting--> Audio):对声音进行一些全局设置

  • Global Volume: 全局播放的音量;

  • Volume Rolloff Scale: 衰减因子,越大,声音衰减越快;

  • Doppler Factor: 多普勒因子,模拟多普勒效应的监听效果:0关闭, 1 高速物体的多普勒效应会比较明显的监听的到;

  • Default Speak Mode: 设定扬声器模式(AudioSpeakModer);默认值为2立体声;

  • System Sample Rate: 输出取样频率。如果设置为0,系统取样频率将被使用。注意,这只是一个参考只有特定平台允许改变,比如 iOS 或安卓;

  • DSP Buffer Size: 调整DSP缓冲区大小优化延迟和性能;

  • Max Virutal/Real Volice Count: 同时播放的虚拟/真实声音的数量;

  • DisableAudio: 禁用音频;

三、常见问题

1、全局播放音效

当切换场景时,会发现由于切换场景会销毁物体,导致之前设置的统统失效,需要在声音所附着的游戏物体上调用DontDestroyOnLoad()方法。