Как выключить звук во всей игре с помощью Toggle? Unity

У меня есть два Toggle, один отвечает за фоновую музыку, второй за звук нажатия кнопок. У меня есть AudioMixer для каждого из них. И есть скрипт для каждого. Скрипт для фоновой музыки.

public class ToggleSwitcher : MonoBehaviour
{
    public AudioMixer Music;
    public void OnToggleSwitch(bool value)
    {
        if (!value)
        {
            PlayerPrefs.SetFloat("Volume", -80f);
            Music.SetFloat("VolumeMusic", -80);
            Debug.Log("Работает, громкость убрали");

        }
        else
        {
            PlayerPrefs.SetFloat("VolumeMusic", 0f);
            Music.SetFloat("VolumeMusic", 0);
        }
    }
}

Скрипт для звука нажатия

public class ToggleSwitcherSFX : MonoBehaviour
{
    public AudioMixer Music;
    public void OnToggleSwitch(bool value)
    {
        if (!value)
        {
            AudioListener.volume = -80f;
            PlayerPrefs.SetFloat("VolumeSoundEffect", -80f);
            Music.SetFloat("VolumeSoundEffect", -80);
            Debug.Log("Работает, громкость убрали");

        }
        else
        {
            AudioListener.pause = false;
            PlayerPrefs.SetFloat("VolumeSoundEffect", 0f);
            Music.SetFloat("VolumeSoundEffect", 0);
        }
    }
}

На данный момент есть 2 проблемы. 1 при запуске срабатывает сразу звук нажатия кнопки, хотя кнопка не была нажата. 2 Не работает выключение звука.

На сцене настроек есть только SFX, Music находится на стартовой страница и потом заноситься в DontDestroyOnLoad.

Вот Toggle Music Toggle Music, а вот Toggle SFX Toggle SFX

Также вот окно Миксера MasterMixer, Expose Volume to script было сделано. Помогите пожалуйста уже весь интернет облазил, так и не нашел решение.


Ответы (0 шт):