Ludo-3D/Assets/Scripts/UI/Pages/PopUp/OptionsPopup.cs

77 lines
2.2 KiB
C#

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>();
screenManager.ShowScreen(ScreenType.MenuScreen);
Hide();
}
public void OnMainVolChanged(float value)
{
SoundManager soundManager = InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>();
if (soundManager != null)
{
soundManager.SetMainVolume(value);
}
}
public void OnBGMVolChanged(float value)
{
SoundManager soundManager = InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>();
if (soundManager != null)
{
soundManager.SetBGMVolume(value);
}
}
public void OnSFXVolChanged(float value)
{
SoundManager soundManager = InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>();
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;
}
}