unity-game-engine - Unity 中的音频音量

标签 unity-game-engine audio

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

最佳答案

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


  1. 创建新的音频混合器资源。 右键单击>创建>音频混合器

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

  3. 通过点击“群组”右侧的 +(位于左侧面板)来创建新群组。通过制作“音乐”和“音效”音频混合器组来实现单独的“音乐”和“音效”音频级别。

  4. 单击新组,右键单击检查器中的“Volume”文本,然后单击“将...暴露给脚本”。这将允许您通过代码更改音量参数。

  5. 返回音频混合器窗口,展开右上角的“公开参数”下拉列表。

  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);
    }
}
  • 转到您的音频源,然后选择要路由的正确输出。您仍然可以使用“音量” slider ,它只会进一步降低音量。
  • 关于unity-game-engine - Unity 中的音频音量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73405276/

    相关文章:

    c# - C# 中的捕获设备列表(例如麦克风、立体声混音...)

    javascript - HTML 音频播放器轨道链接在新浏览器中打开

    c# - Unity3D游戏: deal with constants within one file

    jquery - 无法从我的脚本中获得响应

    c# - 在运行时更新 Sprite 后图像变形(Unity 2019)

    c# - 如何在无尽的跑酷游戏中与火箭一起移动相机

    android - 在 Android 应用程序中实现声音

    ios - 如何从照片库等设备库中挑选/浏览音频文件?

    c# - 在 OOP 中可以处理对象类外部的对象事件吗?

    c# - 不要等待arduino回复