Unity中的音频音量



有没有办法让Unity中的所有音频片段都保持相同的音量?我能找到的唯一方法是直接从代码中更改AudioSource的音量,但还有其他方法吗?

您可能正在寻找混音器API。它允许您将每个音频源分配给不同的"音频源";"音频混合器组";,您可以使用它来更改所述组中所有音频源的参数(在您的情况下为音量(。


  1. 创建一个新的混音器资源。CCD_ 1。

  2. 双击新创建的资源,打开"音频混合器"窗口。

  3. 通过点击"右边的+来创建新的组;组";(在左侧面板上(。具有分开的";音乐"以及";"声音效果";音频电平是通过使;音乐"以及";Sound Effect";混音器组。

  4. 单击新组,右键单击";"体积";文本,然后单击";暴露编写脚本";。这将允许您通过代码更改音量参数。

  5. 回到Audio Mixer(混音器(窗口;暴露参数";右上角的下拉列表。

  6. 将参数从"重命名为";MyExposedParameter";合理的东西,比如";MusicVolume";或";SfxVolume";(双击(。

  7. 在代码中,当您想要更改音频级别时,创建一个引用初始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);
}
}
  1. 转到您的音频源,选择合适的Output进行路由。您仍然可以使用";"体积";滑块,它只会进一步降低音量

最新更新