音频概述
没有音频的游戏是不完整的,例如背景音乐或音响效果。Unity 的音频系统灵活而强大。它可以导入大多数标准音频文件格式,并且为播放 3D 空间中的声音提供了复杂的功能,以及可选的音响效果,例如回音和过滤。Unity 还可以记录来自用户机器上任意可用麦克风的音频,以便在游戏过程中使用,或者用于存储和传输。
基础理论
在现实生活中,声音由对象发出,并被听众听到。声音被感知的方式取决于许多因素。听众可以大致地判断声音来自的方向,并且可以通过音量和音质判断声音的距离。因为多普勒效应,快速移动的音源(例如下落的炸弹或路过的警车)将随着移动改变音高。此外,周围环境将影响声音反射的方式,所以,同样的声音,在洞穴内会有回音,在露天中则没有回音。
Audio Sources and Listener
音频源和侦听器
为了模拟位置效果,Unity 要求为对象附加 音频源 Audio Source 组件,并指定声音文件;并为另一个对象附加 音频侦听器 Audio Listener 组件,通常是主摄像机。这样,音频源发出的声音被音频侦听器检测到。然后,Unity 可以模拟侦听器到音源的距离和位置效果,并相应地向用户播放声音。也可以用音频源和侦听器的相对速度来更加逼真地模拟多普勒效应。
Unity 不支持纯粹地通过场景几何计算回音,但是可以通过添加 音频过滤器 Audio Filters 来模拟它们。例如,你可以为来自洞穴内部的声音应用回音过滤器 Echo。对于对象可以移入和移出的强回音场景,可以添加 混响区域 Reverb Zone。例如,游戏可能会汽车穿过隧道。如果在隧道内放置一个混响区域,当汽车进入隧道时,引擎声音将开始产生回音,当汽车从隧道另一边出现时,回音将消失。
Unity 的 音频混音器 Audio Mixer 支持混合各种音频源、添加效果和执行母带处理。
有关音响效果的选项和参数的更多信息,请参阅 音频源、音频侦听器,音频混音器,音频效果 和 混响区域 的手册页。
使用音频资源
Unity 可以导入 AIFF、WAV、MP3 和 Ogg 格式的音频文件,导入方式与其他资源一样,只需简单地将文件拖入项目面板。导入一个音频文件会创建一个音频剪辑 Audio Clip,可以将其拖动到一个音频源 Audio Source 组件,或是从脚本中使用它。音频剪辑的参考页提供了导入音频文件时可用选项的更多详细信息。
对于音乐,Unity 还支持音轨模块,它采用短音频样本作为乐器,然后排列乐器播放音乐。音轨模块可以从 .xm、.mod、.it 和 .s3m 文件导入,使用方式与普通的音频剪辑大致相同。
音频录制
Unity 可以通过脚本访问计算机的麦克风,通过直接录制创建音频剪辑。麦克风 Microphone 类提供了直观的 API 来查找可用的麦克风,包括查询性能、开始和结束录制会话。麦克风 Microphone 的脚本引用页提供了音频录制的更多信息和代码示例。