Unity性能優化—聲音優化
本帖最後由 manew_JR 於 2016-9-28 11:48 編輯 目標給你一個關於在Unity遊戲中通過優化聲音提高性能的建議 爲什麼我的遊戲加載時間那麼長? 爲什麼播放遊戲聲音時延遲那麼長? 爲什麼聲音文件佔那麼多的內存? 爲什麼我一播放聲音遊戲就那麼卡? 難道是因爲我在開發時對聲音的處理有問題? 也許你在加載聲音時都會出現以上的問題衝到你的腦門上!! 好吧,我知道這種感覺!!聲音管理起來很棘手;當我開發第一個遊戲的時候我也有遇到過相同的問題。我在網上任何地方都找不到原因和解決方案。所以我決定發佈這篇文章,希望能幫助到你。 如果你是Unity初學者,首先需要弄清楚聲音管理如何在Unity中工作的。 爲此,你可以參照下面的鏈接,去了解一下Audio Clips、Audio Listeners、AudioSources的基本操作:https://unity3d.com/learn/tutorials/modules/beginner/audio/audio-sources-and-listeners 在Unity中的聲音管理是非常簡單和基本的,它是如何影響我的遊戲呢? · 是的,非常簡單哦,但是它(聲音管理)卻能讓你的遊戲陷入困境! · 讓我們通過一個簡單的案例去理解它吧。 步驟一:設置場景,如下所示: 創建一個Canvas,給它添加兩個Button控件(一個名爲Music-Button,另一個爲Sound-Button)。 在Main Camera下創建一個空物體命名爲AudioSources,且又在它下面再創建兩個空物體分別命名爲“BackgroundMusic”和“SFX-Sounds”。 然後創建一個空物體(Empty GameObject),並命名爲“SoundManager”。(名字隨你來) 在hierarchy中層次關係如下所示: 我的屏幕設置很簡單,如下所示: 步驟二:創建一個腳本,如下所示: [C#] 純文本查看 複製代碼
在這裏,對於背景音樂和SFX聲音(SFX聲音就是一點短的音頻剪輯,如跳躍的聲音(Biu)等)我聲明瞭兩個Audio Clip的數組,名字分別爲:backgroundMusicClipsArray和 SFXSounds(分別用來存放對應的聲音資源)。 也聲明瞭兩個AudioSource類型的成員變量(就是對應的“BackgroundMusic”和“SFX-Sounds”,記得把他們拖到腳本上哦)。 這裏有兩個名爲PlayRandomMusic() 和PlayRandomSFXSounds()的方法,用於在我們調用該方法時播放隨機音樂/聲音。然後爲對應的Button添加對應的響應事件。把AudioClips的設置全設爲默認即可。 現在測試它在編輯器是否能正常工作。 步驟三:把發佈平臺設置爲安卓平臺 生成 Build 的時候記得把 Development Build 和 Auto Connect Profiler 勾選上,如下圖所示: 在你手機上開始遊戲,你有發現到什麼奇怪的事情嗎? 加載遊戲花了多少時間? 對於我,從Unity的默認界面加載到遊戲界面我大約花了10-15秒,我的遊戲中大概有15個背景音樂和40個SFX聲音片段。 現在,查看一下Profiler,在Profiler中找到Audio模塊。如下圖所示(下面第一張圖是我自己弄得,怕大夥們找不到Audio模塊。。) |