c# - Unity - 带有 UI slider 的场景背景音乐

标签 c# unity3d audio uislider mixer

我在 Unity 中创建了一个包含 4 个不同场景(开始、登录、选项、游戏本身)的游戏。

带有一个空的游戏对象(在开始场景中)和 DontDestroyOnLoad功能我已经设法在所有场景中播放音乐,而无需在每个场景中停止或加载新音乐。

在选项场景中,有一个连接到主音频混音器的 slider ,目前为止可以正常工作。

对我来说唯一的问题是 slider 可以“干扰”gameobject。在开始场景中(背景音乐,应通过 slider 触发)。
如果有人可以帮助我,那就太棒了! :)

这里有一些摘录:
ChangeVolume类(class):

public AudioMixer audioMixer;

public void setVolume(float volume){
    audioMixer.SetFloat ("volume", volume);
}


MusicBehaviour类(class):
//Play global
private static MusicBehaviour instance = null;
    public static MusicBehaviour Instance {
        get {
              return instance;
        }
    }

void Awake()
{
    if (instance != null && instance != this) {
        Destroy (this.gameObject);
        return;
    } else {
        instance = this;
    }
    DontDestroyOnLoad (this.gameObject);
}

//Play Global End

//Update is called once per frame
void Update () {
}

我很高兴您的帮助/解决方案,也许有一个更简单的! :-)

最佳答案

最简单的方法是使用 PlayerPrefs并将声音值保存在那里。每次在Awake()开始游戏您将设置该值,并在触发 slider 时更改 PlayerPrefs 中的值并将其设置为 MusicBehaviour实例。

关于c# - Unity - 带有 UI slider 的场景背景音乐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51061003/

相关文章:

c# - 使用 LINQ 删除列表中的重复内容?

c# - 数据设计模式的可比合并

c# - 如何修复面向玩家的翻转世界空间 UI?

node.js - 将音频缓冲区从 44100 重新采样到 16000

audio - 如何在 Gstreamer 中动态交换左/右音频输出

audio - 如何使 PGraphics 充满点(白色等级基于幅度)和不断变化的弧线的纹理?

c# - 在 C# 中确定调用对象类型

c# - ASP.NET MVC 中的 WebClient 死锁(同步操作方法)

c# - 统一: Instantiating prefab with animator

unity3d - 实现 Kinect 和 Unity 3D 集成的概述