Unity 遊戲音效

除了畫面以外,音效是遊戲設計的重要元素,可透過腳本控制音效播放的方法。

影片展示音效用於遊戲或動畫的效果,關於 AudioClip 可參閱 Unity 網站 的說明。

 

本範例是物件被碰撞時觸發音效,此物件必須擁有 AudioSource 元件。

 

將此腳本套用到需要發出音效的物件,音效檔可從 Asset Store 資源商店下載 適當音效匯入專案。

當此物件與其他物件碰撞,例如因掉落而碰撞地面,或是遊戲角色碰撞此物件時,都會發出聲音。

目前物件掉落到地面或是玩家碰撞時都是相同的音效,稍微修改腳本讓物件能發出不同的音效。

 

使用 UI 控制音量與靜音

建立一個新的遊戲物件,套用 Audio Source 元件,將音效檔拖曳到 AudioCip 欄位,此物件在進入遊戲時將會持續發出聲音。

無論玩家在那個位置,聽到的音量大小都一樣,因為預設值 Spatial Blend = 2D,如果需要讓玩家接近時音量變大,設為 3D

執行 [ GameObject > UI > Scrollbar ] 製作音量控制滑桿,若要改為垂直將 Direction = Bottom To Top ,設定 Value = 1 最大聲。

執行 [ GameObject > UI > Button ] 製作靜音按鈕。完成以上步驟可以執行測試是否能播放背景音樂。

建立一個新的腳本 AudioControl 控制音量,此腳本需要提供以下功能:

1. 拖曳 Scrollbar 的位置可以調整音量。

2. 按靜音按鈕可讓音量歸零,再按一次恢復先前音量。

 

靜音的控制,執行 SoundMute 時判斷是否靜音的狀態,當按鈕按下時,一定是靜音的是或否,所以先做 muteState != muteState 的布林值切換。

當 muteState = true 代表靜音狀態,將目前的音量儲存到 previousVolume 變數,再將音量audioSource.volume設為0。

而 muteState = false 時,再將 previousVolume 數值帶回audioSource.volume。

接著回到場景中,做音量控制條和靜音按鈕的設定

選取 Scrollbar 捲軸,在 Inspector 屬性編輯器的 On Value Changed 按下 + 按鈕新增項目,將 Music 拖曳到下方欄位

右側的下拉選單,選擇 VolumeChanged 可以測試看看是否可以在 Unity 控制音量。

選取靜音按鈕,在 Inspector 屬性編輯器的 On Click () 按下 + 按鈕新增項目,將 Music 拖曳到下方欄位

右側的下拉選單,選擇 MuteClick 可以測試看看是否可以控制 Unity 音量靜音。

 

為動作加上音效

遊戲中的許多場合,需要在動畫的特定時間點加入音效,這部份可以透過新增事件完成。

鐘擺聲的音效:JustGore_AddOn_Splatter_Splat_014、JustGore_AddOn_Splatter_Splat_070

建立一個 C# 腳本,套用到鐘擺物件上,注意此物件需有 Audio Source 元件。

 

執行 [ Window > Animation ] 開啟動畫編輯視窗,鐘擺在左邊的時間按下 Add Event. 按鈕,然後從 Inspector 屬性編輯器選擇 PlaySFX1 ( ) 。

鐘擺在右邊的時間按下 Add Event. 按鈕,然後從 Inspector 屬性編輯器選擇 PlaySFX2 ( ) 。

按下 Play 測試遊戲,確認動畫播放時是否同時發出聲音。