using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; public class SoundSettingManager : MonoBehaviour { float masterVolume; float musicVolume; float sfxVolume; Slider MasterSlider; Slider SfxSlider; Slider MusicSlider; private void Start() { MasterSlider.value = masterVolume; SfxSlider.value = sfxVolume; MusicSlider.value = musicVolume; } public void ReloadReferences() { MasterSlider = GameObject.FindWithTag("MasterSlider").GetComponent(); SfxSlider = GameObject.FindWithTag("SfxSlider").GetComponent(); MusicSlider = GameObject.FindWithTag("MusicSlider").GetComponent(); MasterSlider.onValueChanged.AddListener(OnMasterValueChanged); SfxSlider.onValueChanged.AddListener(OnSfxValueChanged); MusicSlider.onValueChanged.AddListener(OnMusicValueChanged); } public void OnMasterValueChanged(float newValue) { masterVolume = newValue; } public void OnSfxValueChanged(float newValue) { sfxVolume = newValue; } public void OnMusicValueChanged(float newValue) { musicVolume = newValue; } #region Sound Settings Data Save/Load public void SaveSoundSettingsData(ref SoundSettingSaveData data) { data.musicVolume = musicVolume; data.sfxVolume = sfxVolume; data.masterVolume = masterVolume; } public void LoadSoundSettingsData(SoundSettingSaveData data) { musicVolume = data.musicVolume; sfxVolume = data.sfxVolume; masterVolume = data.masterVolume; } #endregion } [System.Serializable] public struct SoundSettingSaveData { public float musicVolume; public float sfxVolume; public float masterVolume; }