2026-01-23 15:32:53 +05:30
|
|
|
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-23 15:32:53 +05:30
|
|
|
|
2026-01-28 15:51:45 +05:30
|
|
|
private void OnEnable()
|
|
|
|
|
{
|
|
|
|
|
closeBtn.onClick.AddListener(OnClick_closeBtn);
|
2026-01-28 16:53:28 +05:30
|
|
|
mainVolSlider.onValueChanged.AddListener(OnMainVolChanged);
|
|
|
|
|
musicVolSlider.onValueChanged.AddListener(OnBGMVolChanged);
|
|
|
|
|
sfxVolSlider.onValueChanged.AddListener(OnSFXVolChanged);
|
|
|
|
|
InitializeSliders();
|
2026-01-28 15:51:45 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnDisable()
|
|
|
|
|
{
|
2026-01-28 16:53:28 +05:30
|
|
|
closeBtn.onClick.RemoveListener(OnClick_closeBtn);
|
|
|
|
|
mainVolSlider.onValueChanged.RemoveListener(OnMainVolChanged);
|
|
|
|
|
musicVolSlider.onValueChanged.RemoveListener(OnBGMVolChanged);
|
|
|
|
|
sfxVolSlider.onValueChanged.RemoveListener(OnSFXVolChanged);
|
2026-01-28 15:51:45 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnClick_closeBtn()
|
|
|
|
|
{
|
|
|
|
|
ScreenManager screenManager = InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>();
|
2026-01-30 09:35:31 +05:30
|
|
|
screenManager.ShowScreen(ScreenType.MenuScreen);
|
2026-01-28 15:51:45 +05:30
|
|
|
|
|
|
|
|
Hide();
|
|
|
|
|
}
|
2026-01-28 16:53:28 +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-23 15:32:53 +05:30
|
|
|
}
|
2026-01-28 15:51:45 +05:30
|
|
|
|