using MoleMole.Config; using UnityEngine; namespace MoleMole { public static class AudioSettingData { private static float _volumeThreshold = 0.01f; public static void ApplySettingConfig() { ConfigAudioSetting personalAudioSetting = Singleton.Instance.GeneralLocalData.PersonalAudioSetting; if (personalAudioSetting.IsUserDefined) { Singleton.Instance.SetParam("Vol_BGM", personalAudioSetting.BGMVolume); Singleton.Instance.SetParam("Vol_SE", personalAudioSetting.SoundEffectVolume); Singleton.Instance.SetParam("Vol_Voice", personalAudioSetting.VoiceVolume); Singleton.Instance.SetLanguage(personalAudioSetting.CVLanguage); } } public static void CopyPersonalAudioConfig(ref ConfigAudioSetting to) { ConfigAudioSetting personalAudioSetting = Singleton.Instance.GeneralLocalData.PersonalAudioSetting; to.BGMVolume = personalAudioSetting.BGMVolume; to.SoundEffectVolume = personalAudioSetting.SoundEffectVolume; to.VoiceVolume = personalAudioSetting.VoiceVolume; to.CVLanguage = personalAudioSetting.CVLanguage; } public static bool IsValueEqualToPersonalAudioConfig(ConfigAudioSetting to) { ConfigAudioSetting personalAudioSetting = Singleton.Instance.GeneralLocalData.PersonalAudioSetting; return Mathf.Abs(personalAudioSetting.BGMVolume - to.BGMVolume) <= _volumeThreshold && Mathf.Abs(personalAudioSetting.SoundEffectVolume - to.SoundEffectVolume) <= _volumeThreshold && Mathf.Abs(personalAudioSetting.VoiceVolume - to.VoiceVolume) <= _volumeThreshold && personalAudioSetting.CVLanguage == to.CVLanguage; } public static void SavePersonalConfig(ConfigAudioSetting settingConfig) { Singleton.Instance.GeneralLocalData.PersonalAudioSetting.BGMVolume = settingConfig.BGMVolume; Singleton.Instance.GeneralLocalData.PersonalAudioSetting.SoundEffectVolume = settingConfig.SoundEffectVolume; Singleton.Instance.GeneralLocalData.PersonalAudioSetting.VoiceVolume = settingConfig.VoiceVolume; Singleton.Instance.GeneralLocalData.PersonalAudioSetting.CVLanguage = settingConfig.CVLanguage; Singleton.Instance.GeneralLocalData.PersonalAudioSetting.IsUserDefined = true; Singleton.Instance.SaveGeneralData(); ApplySettingConfig(); } } }