Files
bansonic_beta_main/Assets/scripts/settings/audioMerger.cs
T

81 lines
2.4 KiB
C#

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()
{
}
}