我在 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/