有没有办法让Unity中的所有音频片段都保持相同的音量?我能找到的唯一方法是直接从代码中更改AudioSource的音量,但还有其他方法吗?
您可能正在寻找混音器API。它允许您将每个音频源分配给不同的"音频源";"音频混合器组";,您可以使用它来更改所述组中所有音频源的参数(在您的情况下为音量(。
-
创建一个新的混音器资源。CCD_ 1。
-
双击新创建的资源,打开"音频混合器"窗口。
-
通过点击"右边的+来创建新的组;组";(在左侧面板上(。具有分开的";音乐"以及";"声音效果";音频电平是通过使;音乐"以及";Sound Effect";混音器组。
-
单击新组,右键单击";"体积";文本,然后单击";暴露编写脚本";。这将允许您通过代码更改音量参数。
-
回到Audio Mixer(混音器(窗口;暴露参数";右上角的下拉列表。
-
将参数从"重命名为";MyExposedParameter";合理的东西,比如";MusicVolume";或";SfxVolume";(双击(。
-
在代码中,当您想要更改音频级别时,创建一个引用初始AudioMixer资源的变量。然后可以使用
mixer.SetFloat(parameter, value)
。例如:
using UnityEngine;
using UnityEngine.Audio; //required import for AudioMixer
public class AudioChanger : MonoBehaviour {
[SerializeField] AudioMixer mixer;
public void SetMusicVolume(float value) {
SetVolume("MusicVolume", value);
}
public void SetSfxVolume(float value) {
SetVolume("SfxVolume", value);
}
private void SetVolume(string parameter, float value) {
mixer.SetFloat(parameter, value);
}
}
- 转到您的音频源,选择合适的
Output
进行路由。您仍然可以使用";"体积";滑块,它只会进一步降低音量