C# 如何在菜单中保存设置
我制作了一个有问题的静音按钮脚本(在我的菜单/暂停屏幕中)。静音/取消静音部分按照我的要求工作,但是每当我死后,将场景从“游戏”更改为“菜单”,静音按钮就会自动重置为我在唤醒功能中所说的内容(显然)。但是我怎样才能“保存”静音按钮的状态,这样当我死的时候,它会保持在我死前设置的状态 这样:玩游戏(不静音,所以有声音)->按暂停/死亡进入菜单屏幕->将按钮(切换)更改为“静音”(所以声音关闭)->继续玩/再次玩->再次按暂停/死亡->按钮仍然设置为“静音” 这是我的脚本(抱歉,有点乱,我是C#新手):C# 如何在菜单中保存设置,c#,unity3d,C#,Unity3d,我制作了一个有问题的静音按钮脚本(在我的菜单/暂停屏幕中)。静音/取消静音部分按照我的要求工作,但是每当我死后,将场景从“游戏”更改为“菜单”,静音按钮就会自动重置为我在唤醒功能中所说的内容(显然)。但是我怎样才能“保存”静音按钮的状态,这样当我死的时候,它会保持在我死前设置的状态 这样:玩游戏(不静音,所以有声音)->按暂停/死亡进入菜单屏幕->将按钮(切换)更改为“静音”(所以声音关闭)->继续玩/再次玩->再次按暂停/死亡->按钮仍然设置为“静音” 这是我的脚本(抱歉,有点乱,我是C#新手
如果你想让游戏对象持久化,你可以使用
DontDestroyOnLoad(gameObject);
为了不让同一个游戏对象有两个克隆,你应该这样做
public static exist=false;
Void Awake() {
if (!exist) {
DontDestroyOnLoad(this.gameObject);
exist = true;}
else {
Destroy(this.gameObject);
}
}
一种方法是将所有选项放在类中,并将声音作为类变量,以一种不会破坏的方式放置
public Options option;
void Start()
{
DontDestroyOnLoad(option);
option=option.GetComponent<Options>();
textureBool=option.sound;
}
void died()
{
option.sound=textureBool;
}
非常感谢你!我明天会看一看,然后告诉你它是否有效!我看了一下代码,但因为(就像我说的)我刚刚开始使用C语言,你刚才说的对我来说就像中文:p,同时太多了。这就是为什么我会问你,如果你有空闲时间,你能试着将你的代码实现到我的代码中吗?如果没有,没问题,我理解,但如果你这样做,我非常感激!)提前谢谢!顺便说一句,我的菜单/死区屏幕不是一个弹出窗口,而是一个单独的场景。如果不使用,您是否使用了切换的编辑版本
public Options option;
void Start()
{
DontDestroyOnLoad(option);
option=option.GetComponent<Options>();
textureBool=option.sound;
}
void died()
{
option.sound=textureBool;
}
void Start()
{
textureBool=Convert.ToBoolean(PlayerPrefs.GetInt("sound")) ;
}
void died()
{
PlayerPrefs.SetInt("sound",Convert.ToInt32(textureBool));
PlayerPrefs.Save();
}