我一直在这里尝试在我的SoundManager中设置一个booleanSound bool(boolean) 值,然后切换到一个新场景,并将以前存储的值保存在MutantSound中,但是我没有成功。

我尝试了DontDestroyOnLoad(this);希望它能将它带入新的场景,但由于某种原因却没有。

你们中有人知道我的问题吗?我使用的功能正确吗?

谢谢,

最佳答案

有人会说使用static。那会行得通,但要避免这样做,因为您会遇到其他问题。您需要的是PlayerPrefs。在退出时保存值。游戏开始时读取值。您可以在SoundManager脚本中执行此操作。

bool muteSound = false;

//Load the value when game starts (default is false)
void Start()
{
    muteSound = intToBool(PlayerPrefs.GetInt("muteSound", 0));
}

int boolToInt(bool val)
{
    if (val)
        return 1;
    else
        return 0;
}

bool intToBool(int val)
{
    if (val != 0)
        return true;
    else
        return false;
}

//Save on Exit
void OnDisable()
{
    PlayerPrefs.SetInt("muteSound", boolToInt(muteSound));
}

关于c# - 如何在场景之间保持值(value)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38124046/

10-10 10:05