因此,我正在開發的Unity項目基本上利用音量來影響某些遊戲機制。獨立於音頻源/聽衆的音量控制
我想爲用戶添加音量級別選項,但是我發現這樣做的唯一方法是直接更改音頻源的輸出音量或直接更改音頻聽衆聽到的音量。
這是一個問題,因爲我使用的是AudioSource.GetSpectrumData,並且如果修改了源或監聽器音量,則頻譜數據值將與這些值一起下降。
所以我需要的是一種方法來控制遊戲輸出音量水平,而不改變任何音頻源或聽衆的音量水平。
因此,我正在開發的Unity項目基本上利用音量來影響某些遊戲機制。獨立於音頻源/聽衆的音量控制
我想爲用戶添加音量級別選項,但是我發現這樣做的唯一方法是直接更改音頻源的輸出音量或直接更改音頻聽衆聽到的音量。
這是一個問題,因爲我使用的是AudioSource.GetSpectrumData,並且如果修改了源或監聽器音量,則頻譜數據值將與這些值一起下降。
所以我需要的是一種方法來控制遊戲輸出音量水平,而不改變任何音頻源或聽衆的音量水平。
您是否嘗試過使用Unity的音頻混音器?你會避免接觸到來源或聽衆。
據我所知,可以通過暴露它們直接控制AudioMixer的參數,然後使用SetFloat函數設置值。
看看這個視頻從Unity:exposed Audio mixer parameters
通過使用音頻混音器組件,您可以設置每個音頻監聽器是在某個頻道,但有一個養育系統,這意味着你可以有一個主通道,其平均影響所有音量。 Here是該組件的文檔。
這裏是如何使用它一個統一的教程:
Parameters(如果需要)
希望有所幫助。