77 lines
2.2 KiB
C#
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.MenuHUDScreen);
|
|
|
|
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;
|
|
|
|
}
|
|
}
|
|
|