DontDestroyOnLoad通过音频场景

时间:2019-06-02 11:58:21

标签: c# unity3d

我更改音乐的音量不能超过1次。音量控制位于“设置”场景中,因此当我移至该场景时,我可以更改游戏声音的音量,但是当我离开场景并返回时,我不能。我猜这是由于我的DontDestroyOnLoad使用不当引起的。 一旦更改了音量,DontDestroyOnLoad就会进入,因此一旦离开现场,音量就不会更改,但是当您回到“设置”将其更改回来时,DontDestroyOnLoad不会起作用。 我该如何解决这个问题,以便随时随地更改?

while(true)

1 个答案:

答案 0 :(得分:0)

用于卷的两个实例都不会在加载时销毁,因此您无需将卷的最后值存储在字段中。

此代码解决了您的问题:

private void Start()
{
    DontDestroyOnLoad(this.gameObject);
    MusicBack.instance.musicSource.volume = 1f;
    MusicBack.instance.efxSource.volume   = MusicBack.instance.efxSourceEnemy.volume = 1f;
}

public void SetVolume(float vol) { MusicBack.instance.musicSource.volume = 1f; }

public void SetVolumeFx(float vol2)
{
    MusicBack.instance.efxSource.volume = MusicBack.instance.efxSourceEnemy.volume = vol2;
}

SetVolume将改变音乐音量,而SetVolumeFx将改变音效的音量。

还要确保正确调用了SetVolumeSetVolumeFx