using Core.UI; using TowerDefense.Game; using UnityEngine.UI; namespace TowerDefense.UI { /// /// Simple options menu for setting volumes /// public class OptionsMenu : SimpleMainMenuPage { public Slider masterSlider; public Slider sfxSlider; public Slider musicSlider; /// /// Event fired when sliders change /// public void UpdateVolumes() { float masterVolume, sfxVolume, musicVolume; GetSliderVolumes(out masterVolume, out sfxVolume, out musicVolume); if (GameManager.instanceExists) { GameManager.instance.SetVolumes(masterVolume, sfxVolume, musicVolume, false); } } /// /// Set initial slider values /// public override void Show() { if (GameManager.instanceExists) { float master, sfx, music; GameManager.instance.GetVolumes(out master, out sfx, out music); if (masterSlider != null) { masterSlider.value = master; } if (sfxSlider != null) { sfxSlider.value = sfx; } if (musicSlider != null) { musicSlider.value = music; } } base.Show(); } /// /// Persist volumes to data store /// public override void Hide() { float masterVolume, sfxVolume, musicVolume; GetSliderVolumes(out masterVolume, out sfxVolume, out musicVolume); if (GameManager.instanceExists) { GameManager.instance.SetVolumes(masterVolume, sfxVolume, musicVolume, true); } base.Hide(); } /// /// Retrieve values from sliders /// void GetSliderVolumes(out float masterVolume, out float sfxVolume, out float musicVolume) { masterVolume = masterSlider != null ? masterSlider.value : 1; sfxVolume = sfxSlider != null ? sfxSlider.value : 1; musicVolume = musicSlider != null ? musicSlider.value : 1; } } }