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自動銷毀。