Last Updated on 2021-11-03 by Clay
在 Unity 中,若是想要播放音訊檔案,可以粗略分成『背景音樂』與『遊戲音效』兩大類。
背景音樂需要在開始遊戲、物件建立時開始播放,可能會需要重複播放;遊戲音效應該是觸發特定事件,比方說吃到道具時播放。
以下就簡單紀錄該如何做到這兩件重要的音訊播放功能。
播放背景音樂
在開始之前,首先必須談談 Audio Listener 這個元件。Audio Listener 預設是附加在 Main Camera 上,根據官方手冊的說明,Audio Listener 是類似麥克風的設備。它從任何指定的 Audio Source 接收輸入,並通過電腦播放聲音。
所以,若是我們想要擁有場景的背景音樂(Background Music, BGM),我們只需要在 Main Camera 上新增 Audio Source 元件並將想要播放的音樂放上去。
別忘了把 Play On Awake
跟 Loop
選項打勾,如此一來音樂才會在進入場景時播放、同時在音樂播完後繼續重複播放。
播放遊戲音效
我們先來假設一個情境:我們操縱玩家,吃到了一個加速的道具,這時候應該要播放一個『吃到道具的音效』。
那麼我們可以在玩家身上附加下列的範例腳本。
public class Player : MonoBehaviour {
// Sounds
public AudioClip eatSound;
private AudioSource myAudioSource;
void Start()
{
// Sounds
myAudioSource = GetComponent<AudioSource>();
}
// Trigger
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.gameObject.tag == "Items")
{
myAudioSource.PlayOneShot(eatSound);
}
}
}
別忘了要在遊戲編輯器中將想要播放的音效拖曳給 eatSound
欄位喔。
這樣一來,就會在撞到物件標籤為 Items
的物件時,自動播放一次 eatSound
的音效了。
References
- https://docs.unity3d.com/Manual/class-AudioListener.html
- https://forum.unity.com/threads/playing-background-music.63871/