using UnityEngine; using UnityEngine.UI; public class audioMerger : MonoBehaviour { [Header("sv object")] public GameObject sv_audioSettings; [Header("Inspector")] [Tooltip("Documentation text normalized.")] public Toggle enableGlobalMute_toggle; [Header("Inspector")] public Slider mainVolumn_slider; public Slider noteHit_slider; public Slider musicInGame_slider; public Slider musicOutGame_slider; public Slider skillEffect_slider; public Slider uiInteration_slider; public Slider cvVolumn_slider; [Header("Inspector")] public Text mainVolumn_text; public Text noteHit_text; public Text musicInGame_text; public Text musicOutGame_text; public Text skillEffect_text; public Text uiInteration_text; public Text cvVolumn_text; // PlayerPrefs key for storing the toggle state const string PlayerPrefKey_EnableGlobalMute = "EnableGlobalMute"; // Start is called once before the first execution of Update after the MonoBehaviour is created void Start() { // Load saved state (default: false) bool isOn = PlayerPrefs.GetInt(PlayerPrefKey_EnableGlobalMute, 0) == 1; // Apply to toggle (if available) and sv_audioSettings if (enableGlobalMute_toggle != null) { // Prevent accidentally invoking listeners while initializing enableGlobalMute_toggle.onValueChanged.RemoveAllListeners(); enableGlobalMute_toggle.isOn = isOn; enableGlobalMute_toggle.onValueChanged.AddListener(OnEnableGlobalMuteChanged); } if (sv_audioSettings != null) { // Documentation text normalized. sv_audioSettings.SetActive(!isOn); } } void OnDestroy() { if (enableGlobalMute_toggle != null) { enableGlobalMute_toggle.onValueChanged.RemoveListener(OnEnableGlobalMuteChanged); } } // Listener called when the toggle value changes void OnEnableGlobalMuteChanged(bool isOn) { // Save to PlayerPrefs PlayerPrefs.SetInt(PlayerPrefKey_EnableGlobalMute, isOn ? 1 : 0); PlayerPrefs.Save(); // Documentation text normalized. if (sv_audioSettings != null) { sv_audioSettings.SetActive(!isOn); } } // Update is called once per frame void Update() { } }