遊戲開發在Unity內添加音效並用自帶AudioMixer設計音效

一、Unity 支持音效格式

常用的為 .mp3, .ogg, .wav

.wav 適用於較短的音效

.mp3 適用於較長的音效

.ogg 適用於較長的音效

下面以一個 .mp3 音效拖到Project 下,然後選中該音效,在Inspector面板顯示其屬性

遊戲開發在Unity內添加音效並用自帶AudioMixer設計音效

Load Type:

DecompressOnLoad : 音效文件加載後為解壓縮狀態,好處是耗費CPU少。

CompressedInMemory :音效文件在內存中保持壓縮狀態,佔用內存少,但是耗費CPU,當使用該音效時首先要CPU對其進行解壓,然後才能使用。

Streaming : 當播放該音效時,從磁盤以流的形式加載音效數據,好處,佔用內存最少,因為只有很少的緩衝數據佔用內存。

二、播放音效

首先確認場景中有且只有一個對象掛載了 Audio Listerer 組件(一般攝像機上默認掛載一個)。

然後創建一個對象,添加 AudioSource 組件,將音效拖拽到 AudioClip 參數上,如下圖

遊戲開發在Unity內添加音效並用自帶AudioMixer設計音效

選中 Play On Awake(開始即播放)

運行遊戲,即可聽到播放的音效

下面先介紹一些 AudioSource 的一些常用參數

(1)Output 音效混合器

(2)Play On Awake 運行開始立即播放

(3)Loop 是否循環播放

(4)Priority 播放優先權(0 - 255),數值越小,優先級別越高

(5)Volume 播放音量

(6)Pitch 音高,默認為 1,大於1時提高音高,並且會加快播放速度,小於1,降低音高,減慢播放速度,但是數值偏離 1越大,越偏離原始聲音

(7)Stereo Pan 立體聲,默認為 0,當值為 -1時,只有左聲道響,當值為 1時,只有右聲道有聲音

(8)Spatial Blend 當值為 0時為 2D音效,當值為 1 時為 3D音效

(9)Volume Rolloff 即隨著和AudioLister 的距離變化,聽到的音量變化曲線

遊戲開發在Unity內添加音效並用自帶AudioMixer設計音效

遊戲開發在Unity內添加音效並用自帶AudioMixer設計音效

(10)in Distance 當距離超過該數值時,聲音開始衰減

(11) Max Distance 當距離超過該數值時,音量衰減為 0

三、通過代碼控制播放以及上面所有參數的控制

一般不會使用直接將 音效拖拽到 AudioSource 的AudioClip參數上,因為那樣做不利於管理,並且它會在 對象生成的時候立即加載音效到內存,並且不會釋放。音效過多或是音效過大時相當耗費內存。 所以要對音效進行動態加載

音效混合器原理:

遊戲開發在Unity內添加音效並用自帶AudioMixer設計音效

一、創建 AudioMixer

遊戲開發在Unity內添加音效並用自帶AudioMixer設計音效

遊戲開發在Unity內添加音效並用自帶AudioMixer設計音效

二、使用

Master 拖拽到一個AudioSource 組件的 Output 參數上

遊戲開發在Unity內添加音效並用自帶AudioMixer設計音效

運行,播放音效,選中 AudioMixerDemo 在Inspectr 面板點擊 Open,彈出面板如下

遊戲開發在Unity內添加音效並用自帶AudioMixer設計音效

既然是音效混合器,一個音效混合是沒有意義的,賦值幾個掛載 AudioSource 組件的對象,分別拖上不同的音效,這樣,幾個 AudioSource 公用一個 Master,才會達到幾種不同音效混合的效果,一般情況下一個音效混合組(AudioMixerGroup)是不夠的,下面添加多個 AudioMixerGroup

(1) 點擊 Groups 右邊的 “+”

遊戲開發在Unity內添加音效並用自帶AudioMixer設計音效

(2)選中一個 Master 然後點擊 + 將會給其添加一個子 AudioMixerGroup,即需要給誰添加子 AudioMixerGroup,就選中誰,然後點擊 +,這些AudioMixerGroup是可以嵌套的

遊戲開發在Unity內添加音效並用自帶AudioMixer設計音效

(3)此時回到 Project面板會發現多了兩項 A,B

遊戲開發在Unity內添加音效並用自帶AudioMixer設計音效

(4)再次運行程序,打開 AudioMixer

會看到 視圖發生了變化,有三個顯示音效變化的視圖了,分別是 Master、A、B

遊戲開發在Unity內添加音效並用自帶AudioMixer設計音效

(5)選擇 A 然後點擊 A 下面的 S 按鈕,將停止除自己以外的其他音效的播放,結果為 B的播放將停止如下

遊戲開發在Unity內添加音效並用自帶AudioMixer設計音效

選擇 A 然後點擊 A 下面的 M 按鈕,結果 A 自身停止播放

遊戲開發在Unity內添加音效並用自帶AudioMixer設計音效

三、開始編輯每一個 AudioMixerGroup

點擊 AudioMixer 面板的 Editor in Play Mode 這樣我們在運行狀態下編輯的 Group,在停止運行時將保存

遊戲開發在Unity內添加音效並用自帶AudioMixer設計音效

下面簡單說幾個效果的作用

選中一個 AudioMixerGroup 添加效果,有兩種方法

遊戲開發在Unity內添加音效並用自帶AudioMixer設計音效

或者下面方法

遊戲開發在Unity內添加音效並用自帶AudioMixer設計音效

(1)Send 會將這個Group 的信號傳遞出去

(2)Receive 接收其他 Group 發出的信號

下面給 A 添加一個Send, 給B添加一個Receive

遊戲開發在Unity內添加音效並用自帶AudioMixer設計音效

解決上面警告方法就是在 A 的Send 處設置接收者,即設置 B的Receive為接收者

遊戲開發在Unity內添加音效並用自帶AudioMixer設計音效

這樣A 發送的信號,B就能接受到了

遊戲開發在Unity內添加音效並用自帶AudioMixer設計音效

(3)Duck Volume ,接收其他Group發送的信號,改變自己的一些屬性,比如音量大小。

下面給 A 添加 Duck Volume ,給 B 添加 Send,將B的Send的接收者設置為 A 的 DuckVolume

遊戲開發在Unity內添加音效並用自帶AudioMixer設計音效

然後設置A 的 Duck Volume 的一些屬性,當該 Duck Volume 接收到 B Send 過來的信號,將改變自身的一些屬性

比如當 播放 B Group 聲音時,讓A Group聲音減小,就可以設置 A Duck Volume 的 Make -Up Gain 數值為 負數

遊戲開發在Unity內添加音效並用自帶AudioMixer設計音效

(4) Low Pass 低通濾波器,即只允許低頻率的音效播放出來,而高頻率的音效不播放出來

(5)High Pass 高通濾波器,即只允許高頻率的音效播放出來,而低頻率的音效不播放出來

(6)Echo 回聲,即添加該效果,該 Grop 播放的聲音將會產生迴音

遊戲開發在Unity內添加音效並用自帶AudioMixer設計音效

(7)Flang鑲邊效果,用來產生奇怪的音效

遊戲開發在Unity內添加音效並用自帶AudioMixer設計音效

下面還有好多,不一一列舉,自己嘗試即可。


分享到:


相關文章: