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

77 lines
2.3 KiB
C#
Raw Permalink Normal View History

using UnityEngine;
using UnityEngine.UI;
public class OptionsPopup : PopupBase
{
2026-01-28 15:51:45 +05:30
[Header("References")]
[SerializeField] private Button closeBtn;
[SerializeField] Slider mainVolSlider;
[SerializeField] Slider musicVolSlider;
[SerializeField] Slider sfxVolSlider;
2026-01-28 15:51:45 +05:30
private void OnEnable()
{
2026-02-02 17:45:34 +05:30
closeBtn.onClick.AddListener(OnClick_CloseButton);
mainVolSlider.onValueChanged.AddListener(OnMainVolChanged);
musicVolSlider.onValueChanged.AddListener(OnBGMVolChanged);
sfxVolSlider.onValueChanged.AddListener(OnSFXVolChanged);
2026-02-02 17:45:34 +05:30
InitializeSliders();
2026-01-28 15:51:45 +05:30
}
private void OnDisable()
{
2026-02-02 17:45:34 +05:30
closeBtn.onClick.RemoveListener(OnClick_CloseButton);
mainVolSlider.onValueChanged.RemoveListener(OnMainVolChanged);
musicVolSlider.onValueChanged.RemoveListener(OnBGMVolChanged);
sfxVolSlider.onValueChanged.RemoveListener(OnSFXVolChanged);
2026-01-28 15:51:45 +05:30
}
2026-02-02 17:45:34 +05:30
private void OnClick_CloseButton()
2026-01-28 15:51:45 +05:30
{
2026-02-02 17:45:34 +05:30
popupManager.HidePopup(PopupType);
2026-01-28 15:51:45 +05:30
2026-02-02 17:45:34 +05:30
ScreenManager screenManager = InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>();
screenManager.ShowScreen(ScreenType.MainMenuScreen);
2026-01-28 15:51:45 +05:30
}
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;
}
}
2026-01-28 15:51:45 +05:30