Unity3D音频播放器 动态装载组件
大多數在線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) ? ??{ ? ? ? ? Sound.clip?=?(AudioClip)Resources.Load(str,?typeof(AudioClip));//調用Resources方法載入AudioClip資源 ? ? ? ? Sound.Play(); ? ??} } |
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?()?{ ? ?? ? ? ? ? music?=?(GetComponent("MusicPlayer")?as?MusicPlayer);//獲取播放器對象 ? ??} ? ??void?OnGUI() ? ??{ ? ? ? ??if(GUI.Button(new?Rect(10,?10,?100,?50),?"PLAY")){ ? ? ? ? ? ? music.Play("BeiTown");//調用播放器Play方法 ? ? ? ??} ? ??} } |
⑤將腳步綁定到AudioSource音源對象上。并將Audio對象賦給MusicPlayer腳本里的Sound對象,以便MusicPlayer對其進行操作
⑥點擊播放button
這個時候就能聽到聲音了,可是細心的朋友會發現左右耳朵的聲音并非一樣大的,這是由于我們的聲音監聽綁定在了主攝像機上。這就照成了聲音可能是從一個方向傳來的3D效果,假設不想要這個效果也好辦
選取Audio對象,點擊菜單條[Commponent]–>Audio–>Audio Listener
為Audio對象創建一個聲音監聽。并勾選它
又一次點擊播放button,這個時候發現依舊沒有改變。控制臺出現例如以下警告: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,點擊Playbutton,一切正常!
其它的暫停,停止,等等操作這里就不再加入了,感興趣的朋友能夠自己參考API進行操作,本文主要描寫敘述怎樣動態載入一首音樂。并將該類進行封裝,同一時候最簡化的代碼也我們理解有利于手表。
今天,就在這里。旨在分享。和共勉之王。
版權聲明:本文博客原創文章,博客,未經同意,不得轉載。
轉載于:https://www.cnblogs.com/zfyouxi/p/4644489.html
總結
以上是生活随笔為你收集整理的Unity3D音频播放器 动态装载组件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用关系数据库开展智能化营销新思路详解
- 下一篇: iOS开发——UI基础-UIImage,