Unity3D 播放声音需要使用 Audio Source 组件,并且需要 Audio Listener 组件配合,不然无法听到声音。Main Camera 会默认有 Audio Lisetener。
Unity3D 支持的音频格式有:ogg、mp3、wave、AIFF。
音频管理器(Edit-->ProjectSetting--> Audio):对声音进行一些全局设置,AudioSettings 类可以动态操作。
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: 警用音频;
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: 衰减距离的开始结束,最小距离(声音保持最大量),最大距离(不再衰减) 。
常用的开始播放、停止播放、暂停播放方法:
1 public class Test 2 { 3 public AudioSource audioSource; 4 5 private void Start() 6 { 7 audioSource.Play();//开始播放 8 audioSource.Stop();//停止播放 9 audioSource.Pause();//暂停播放 10 } 11 }
AudioSource.PlayClipAtPoint(AudioClip,Vector3,float):在世界坐标系中指定一个位置播放声音片段。
AudioClip:需要播放的声音片段。
Vector3:播放声音片段的位置。
float:音量。
使用AudioSource.PlayClipAtPoint播放声音,会自动生成一个名为"One shot audio"的物体,并自动添加了AudioSource和相应的audioclip,同时播放多个声音时会生成多个同名的物体,各声音的播放互不影响,但缺点是只能设置音量,位置,不能设置loop,播放完成后,One shot audio自动销毁。