【音效】Unity 性能 Review

【音效】Unity 性能 Review

這裡記錄了一些Unity音頻性能的優化點,有些會當作規範在每個版本尾期檢查,提升一些性能(主要是內存)。Unity的音頻使用的是集成過的FMOD。一開始我對音頻進行了進一步的封裝,一方面可以方便的集成到CMT中,另一方面提供了一行代碼就可以播放音效的介面。不過在項目中期為了更好的效果和開發效率,我們改成了FMODStudio。

FMOD Studio和Unity編輯器解耦,自帶可視化的事件參數編輯系統,實時的聯調界面和性能分析工具,支持更高級的混淆效果等等。其實我也不了解。。。程序只要拋出事件,音頻開發就可以在Studio中可視化編輯,包括一些隨機邏輯,分組管理,降低或加強某些音效等等,可以減少很多程序的開發量也更靈活。不過不得不說,在熱更,性能,已經和Unity編輯器集成度上還有花了一點精力踩了一些坑。特別是P4的只讀屬性的問題,在集成到我們的自動構建系統上搞到了半夜。。。

另外需要注意的時,如果使用了第三方的插件,可以關閉Unity的音效引擎減小性能開銷:

FMOD的插件有一些GC問題,播放音效和設置參數的介面都存在一個字元串拼接產生的GC開銷,另外FMOD的調試窗口使用OnGUI不管是否開啟都會產生C++到C#的開銷,並且獲得是否現實調試窗口也會產生固定的GC。

下面是很久以前優化時檢查格式的兩張截圖,已經有點記不清了:

音樂設置:

Force toMono:關閉立體聲音效減小一倍。

PreloadAudio Data:預載入減少卡頓,打開

LoadType:DecompressOn Load,載入後解壓縮。一般用於較小的音效,避免運行時解壓縮的性能開銷。

Compression Format:ios平台建議mp3壓縮格式(Ios設備自帶mp3的硬體解碼器),android平台推薦vorbis壓縮格式。

Quality:播放質量可以降低質量減少包體和內存佔用。

LoadType:CompressedIn Memory,播放時解壓,在內存中時壓縮的,增加CPU開銷但節省內存。用在一些較大的文件並且不經常播放。如果是BGM要設置成Stream from disc從磁碟流讀取,節省內存。


推薦閱讀:

矽谷之路66 產品經理之路(七)
2017-12-30-003-泊松融合及其優化演算法
【程序】Unity 性能 Review

TAG:Unity游戏引擎 | 音效 | 优化 |