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 測試遊戲,確認動畫播放時是否同時發出聲音。 |