Unity Audio Mixer 音樂開關以及優(yōu)化

? ? ? ?音樂音效對于游戲來說是必不可少的一環(huán),大部分游戲都有音樂音效開關,5.0之前,大部分游戲開發(fā)者都是用代碼控制音樂與音效的開關。5.0之后unity加入了AudioMixer混音器系統,使得做法更加簡單。?

? ? ? ? AudioMixer功能很多也很強大,我們在這里只用它一部分的功能,控制整個游戲的音樂音效的開關以及大小,同時對音樂文件進行優(yōu)化,減少包體大小。

? ? ? ? 首先我們來看一下unity支持的音樂文件,一般背景音樂建議使用.mp3與.ogg,而音效則可以使用.aiff,一般我會使用一些工具來壓縮截取和改變音樂格式來供游戲使用,兩個輕量級的工具MAC:Sound Studio,PC:gold wave。

unity支持音樂格式

? ? ? ? AudioMixer意為混音器,我們將其作為開關的原理就是將所有音樂放入同一音軌,需要關閉只需要對這個音軌進行操作就行。

一.首先右鍵Assets創(chuàng)建AudioMixer對象。


? ? ? ?可以這么簡單的理解,一個AudioMixer就是一個音樂開關,游戲內,我使用了兩個AudioMixer,一個用作管理背景音樂,一個用作管理音效。創(chuàng)建好的AudioMixer如下圖。


AudioMixer

二.掛載AudioMixer。

? ? ? ?游戲內創(chuàng)建AudioSource后,將其Output掛載上剛剛我們創(chuàng)建好的AudioMixer。當前AudioSource受AudioMixer影響。


Output

三.AudioMixer提供外部參數

? ? ? ?如圖,在AudioMixer設置界面,點擊Exposed Parameters 輸入參數,以便腳本控制當前音軌。

外部調用參數

四.代碼控制開關

? ? ?首先腳本中獲取到所需要更改的AudioMixer, ?調用剛剛設置好的外部參數,腳本如下:

AudioMixer.SetFloat("VolumeMaster",0.0f);//聲音開

AudioMixer.SetFloat("VolumeMaster",-100.0f);//聲音關

其實可以看出,其實我們聲音開關只是將這條音軌的音量降低。

五.優(yōu)化音樂文件大小


修改audioSource設置

取消勾選preload audio data選項,勾選安卓環(huán)境下的override for andriod選項,并設置load type為streaming。

* 這里禁用的預加載音頻preload audio data,減少加載時間。設置load type為streaming,音頻剪輯將放入緩沖區(qū),從緩沖區(qū)中播放,播放完成后,被卸載,釋放內存。

也可以將使用頻繁的音頻設置load type為decompress on load,在加載時解壓,這樣會更流暢一些,當然只是用于頻繁使用的音頻即可。

之前項目音樂文件沒優(yōu)化,光音樂內存就占了50M,優(yōu)化后小了幾十倍- -

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • iOS 蘋果官方Demo合集 字數10517閱讀21059評論18喜歡144 其實, 開發(fā)了這么久, 不得不說, ...
    bingo居然被占了閱讀 10,587評論 2 31
  • The Audio Listener acts as a microphone-like device. It r...
    Moment__格調閱讀 2,138評論 0 1
  • 原文地址 http://www.fx114.net/qa-75-172454.aspx 使用Profiler工具...
    IongX閱讀 6,231評論 1 11
  • This article is a record of my journey to learn Game Deve...
    蔡子聰閱讀 4,098評論 0 9
  • 喝酒之后的感覺,你們知道嗎,很暈,但是自己認為很清醒。我在不斷的說出自己的思想,期待著別人也說點什么,同時又理智的...
    w夭夭閱讀 250評論 1 1

友情鏈接更多精彩內容