C# 如何在菜单中保存设置

C# 如何在菜单中保存设置,c#,unity3d,C#,Unity3d,我制作了一个有问题的静音按钮脚本(在我的菜单/暂停屏幕中)。静音/取消静音部分按照我的要求工作,但是每当我死后,将场景从“游戏”更改为“菜单”,静音按钮就会自动重置为我在唤醒功能中所说的内容(显然)。但是我怎样才能“保存”静音按钮的状态,这样当我死的时候,它会保持在我死前设置的状态 这样:玩游戏(不静音,所以有声音)->按暂停/死亡进入菜单屏幕->将按钮(切换)更改为“静音”(所以声音关闭)->继续玩/再次玩->再次按暂停/死亡->按钮仍然设置为“静音” 这是我的脚本(抱歉,有点乱,我是C#新手

我制作了一个有问题的静音按钮脚本(在我的菜单/暂停屏幕中)。静音/取消静音部分按照我的要求工作,但是每当我死后,将场景从“游戏”更改为“菜单”,静音按钮就会自动重置为我在唤醒功能中所说的内容(显然)。但是我怎样才能“保存”静音按钮的状态,这样当我死的时候,它会保持在我死前设置的状态

这样:玩游戏(不静音,所以有声音)->按暂停/死亡进入菜单屏幕->将按钮(切换)更改为“静音”(所以声音关闭)->继续玩/再次玩->再次按暂停/死亡->按钮仍然设置为“静音”

这是我的脚本(抱歉,有点乱,我是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();
    }