繁体   English   中英

如何使用保存静音/取消静音按钮?

[英]How to use save Mute/Unmute Button?

嗨,我已经对此问题进行了很多研究,但是我找不到解决问题的最佳方法。

所以问题是我的背景音乐开始播放。我有两个按钮:“开”和“关”。 我想使音乐静音,因此当我单击静音按钮时,它从“开”变为“关”,音乐停止。但是当我改变场景并返回时,它返回到带有文本“开”的按钮,但是音乐仍然停止。 所以我的问题只是如何保存更改后的按钮而无需默认返回? 这是我的脚本:

public GameObject on;
public GameObject off;
public string sound;

Soundtrack music;
static bool isMuted;


void Awake()
{
    SoundCheck();


}
void Start()
{
    music = FindObjectOfType<Soundtrack>();
}
public void Off()
{
    if (isMuted == false)
     {
    on.gameObject.SetActive(false);
    off.gameObject.SetActive(true);
    music.s.Stop();
    isMuted = true;
    PlayerPrefs.SetString("Sound", "muted");
     }
}
public void On()
{    if(isMuted==true)
   {
    on.gameObject.SetActive(true);
    off.gameObject.SetActive(false);
    music.s.Play();
    isMuted = false;
    PlayerPrefs.SetString("Sound", "enabled");
   }
}
public void SoundCheck()
{
    sound = PlayerPrefs.GetString("Sound");

    if (sound == "enabled")
    {
        isMuted = false;
    }
    else if (sound == "muted")
    {
        isMuted = true;
    }
}

}

这很容易。 首先,最好在PlayerPrefs中保存bool类型而不是string 但是要解决您的问题,您要做的就是添加

public void SoundCheck() { sound = PlayerPrefs.GetString("Sound"); if (sound == "enabled") { isMuted = false; } else if (sound == "muted") { isMuted = true; } on.gameObject.SetActive(isMuted); off.gameObject.SetActive(!isMuted); }

您需要在Start函数中更改SoundCheck()调用,而不要唤醒! 当您返回场景时,Start()将调用,但不要唤醒。

顺便说一句:

  1. 如果bool的用于保存PlayerPrefs,
  2. 考虑一下按钮,将精灵更改为“精灵开启”和“精灵关闭”会更好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM