【音效】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