Как включить и выключить звук в Unity с помощью кнопки - PullRequest
0 голосов
/ 20 июня 2020
    public AudioListener audiolistenerr;
    private int SoundSetting;

это мои переменные

    private void Start()
{
    PlayerPrefs.GetInt("Sound", 1);

    if (PlayerPrefs.GetInt("Sound", 1) == 1)
    {
        audiolistenerr.enabled = true;
        SoundSetting = 1;
        
    }

    if (PlayerPrefs.GetInt("Sound", 1) == 0)
    {
        audiolistenerr.enabled = false;
        SoundSetting = 0;
        
    }
}

Мой метод запуска, он просто проверяет, был ли звук включен или выключен с помощью playerprefs

    public void MuteOrUnmuteSOund()
{
    if (audiolistenerr)
    {
        audiolistenerr.enabled = false;
        SoundSetting = 0;
        PlayerPrefs.SetInt("Sound", SoundSetting);
        Debug.Log("Sound on");
    }

    if (!audiolistenerr)
    {
        audiolistenerr.enabled = true;
        SoundSetting = 1;
        PlayerPrefs.SetInt("Sound", SoundSetting);
        Debug.Log("Sound off");
    }
}

И это код, который мой кнопка запускается при нажатии, звук не переключается, я действительно не знаю почему. Как заставить кнопку переключать AudioListener?

Ответы [ 2 ]

0 голосов
/ 20 июня 2020

Вы должны использовать оператор else if в начале и в своем методе, иначе вы измените условия и снова их проверяете.

if (audiolistenerr.enabled)
{
    audiolistenerr.enabled = false;
    SoundSetting = 0;
    PlayerPrefs.SetInt("Sound", SoundSetting);
    Debug.Log("Sound on");
}
else
{
    audiolistenerr.enabled = true;
    SoundSetting = 1;
    PlayerPrefs.SetInt("Sound", SoundSetting);
    Debug.Log("Sound off");
}
0 голосов
/ 20 июня 2020

Попробуйте удалить, 1 вот так:

    if(PlayerPrefs.GetInt("Sound") == 1)
    {
        audiolistenerr.enabled = true;
        SoundSetting = 1;
        
    }

    if (PlayerPrefs.GetInt("Sound") == 0)
    {
        audiolistenerr.enabled = false;
        SoundSetting = 0;
        
    }`
...