網上大多數Unity教程只講述瞭如何在Unity裡播放音樂,如何通過拖拽新增音訊檔案之後就沒有繼續了
但在遊戲中有時候一個物件需要播放好幾種聲音,這個時候我們就需要用程式碼進行控制,教程上推拽給AudioClip賦值的方法就顯得不是那麼實用了
所以本篇將重點講述如何在Unity中建立一個最簡化的音訊播放器,並通過程式碼進行動態載入與播放
①建立一個Empty物件 點選選單欄[GameObject]–>Create Empty 命名為Audio
②選取這個空物件 點選選單欄[Component]–>Audio–>Audio Source 這樣就在場景裡建立瞭如圖所示的一個喇叭
③建立資原始檔夾命名為Resources,並把BeiTown.mp3檔案拖入其中,注意一定要將資原始檔夾名設為Resources,否則Resources.Load方法將無法找到資原始檔
④建立指令碼
接下來開始建立指令碼
MusicPlayer.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | using UnityEngine; using System.Collections; public class MusicPlayer : MonoBehaviour { public AudioSource Sound; public void Play(string str) } |
MusicTest.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | using UnityEngine; using System.Collections; public class MusicTest : MonoBehaviour { private MusicPlayer music; void Start () { } void OnGUI() music.Play(“BeiTown”);//呼叫播放器Play方法 } } } |
⑤將腳步繫結到AudioSource音源物件上,並將Audio物件賦給MusicPlayer指令碼里的Sound物件,以便MusicPlayer對其進行操作
⑥點選播放按鈕
這個時候就能聽到聲音了,但是細心的朋友會發現左右耳朵的聲音並不是一樣大的,這是因為我們的聲音監聽繫結在了主攝像機上,這就照成了聲音可能是從一個方向傳來的3D效果,如果不想要這個效果也好辦
選取Audio物件,點選選單欄[Commponent]–>Audio–>Audio Listener
為Audio物件建立一個聲音監聽,並勾選它
重新點選播放按鈕,這個時候發現依然沒有改變,控制檯出現如下警告:There are 2 audio listeners in the scene. Please ensure there is always exactly one audio listener in the scene.
不要著急,Main Camera 主攝像機上的Audio Listen 取消勾選了麼
Unity預設一個scene裡同時只能有一個聲音監聽,其實這也很好理解,在自然情況下,人類也不可能做到兩隻耳朵聽取不同範圍的聲音(藉助裝置除外)
將其他的Audio Listener取消後,只保留Audio上的Audio Listener,點選Play按鈕,一切正常!
其他的暫停,停止,等等操作這裡就不再新增了,感興趣的朋友可以自己參考API進行操作,本文主要描述如何動態載入一首音樂,並將該類進行封裝,同時最簡化的程式碼也利於大家觀看理解。
今天就到這裡吧,意在分享,與君共勉之。
写评论
很抱歉,必須登入網站才能發佈留言。