using UnityEngine; using UnityEngine.UI; public class OptionsPopup : PopupBase { [Header("References")] [SerializeField] private Button closeBtn; [SerializeField] Slider mainVolSlider; [SerializeField] Slider musicVolSlider; [SerializeField] Slider sfxVolSlider; private void OnEnable() { closeBtn.onClick.AddListener(OnClick_closeBtn); mainVolSlider.onValueChanged.AddListener(OnMainVolChanged); musicVolSlider.onValueChanged.AddListener(OnBGMVolChanged); sfxVolSlider.onValueChanged.AddListener(OnSFXVolChanged); InitializeSliders(); } private void OnDisable() { closeBtn.onClick.RemoveListener(OnClick_closeBtn); mainVolSlider.onValueChanged.RemoveListener(OnMainVolChanged); musicVolSlider.onValueChanged.RemoveListener(OnBGMVolChanged); sfxVolSlider.onValueChanged.RemoveListener(OnSFXVolChanged); } private void OnClick_closeBtn() { ScreenManager screenManager = InterfaceManager.Instance?.GetInterfaceInstance(); screenManager.ShowScreen(ScreenType.MenuHUDScreen); Hide(); } public void OnMainVolChanged(float value) { SoundManager soundManager = InterfaceManager.Instance?.GetInterfaceInstance(); if (soundManager != null) { soundManager.SetMainVolume(value); } } public void OnBGMVolChanged(float value) { SoundManager soundManager = InterfaceManager.Instance?.GetInterfaceInstance(); if (soundManager != null) { soundManager.SetBGMVolume(value); } } public void OnSFXVolChanged(float value) { SoundManager soundManager = InterfaceManager.Instance?.GetInterfaceInstance(); if (soundManager != null) { soundManager.SetSFXVolume(value); } } private void InitializeSliders() { float mainVol = PlayerPrefs.GetFloat("MainVol", 1f); float bgmVol = PlayerPrefs.GetFloat("BGMVol", 1f); float sfxVol = PlayerPrefs.GetFloat("SFXVol", 1f); mainVolSlider.value = mainVol; musicVolSlider.value = bgmVol; sfxVolSlider.value = sfxVol; } }