我一直在这里尝试在我的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/