Files
DougDiggem/Assets/Scripts/UI/SoundSettingManager.cs
T
2026-05-05 21:01:16 -05:00

72 lines
1.8 KiB
C#

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<Slider>();
SfxSlider = GameObject.FindWithTag("SfxSlider").GetComponent<Slider>();
MusicSlider = GameObject.FindWithTag("MusicSlider").GetComponent<Slider>();
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;
}