using System.Collections; using BlueWater; using BlueWater.Audios; using TMPro; using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.UI; public class TitleOptions : MonoBehaviour { [SerializeField] private GameObject _panel; [SerializeField] private Slider _masterVolume; [SerializeField] private Slider _bgmVolume; [SerializeField] private Slider _sfxVolume; [SerializeField] private TMP_Dropdown _languageDropdown; private AudioManager _audioManager; public InputAction CancelAction { get; private set; } private void Start() { CancelAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.TycoonUi, "Cancel"); _audioManager = AudioManager.Instance; var masterVolume = ES3.Load("MasterVolume", 1f); SetMasterVolume(masterVolume); var bgmVolume = ES3.Load("BgmVolume", 1f); SetBgmVolume(bgmVolume); var sfxVolume = ES3.Load("SfxVolume", 1f); SetSfxVolume(sfxVolume); StartCoroutine(nameof(InitializeLanguage)); } public void SetMasterVolume(float value) { _audioManager.SetMasterVolume(value); _masterVolume.value = value; ES3.Save("MasterVolume", value); } public void SetBgmVolume(float value) { _audioManager.SetBgmVolume(value); _bgmVolume.value = value; ES3.Save("BgmVolume", value); } public void SetSfxVolume(float value) { _audioManager.SetSfxVolume(value); _sfxVolume.value = value; ES3.Save("SfxVolume", value); } private IEnumerator InitializeLanguage() { yield return new WaitUntil(() => LocalizationManager.Instance.IsInitialized); var languageIndex = LocalizationManager.Instance.GetCurrentLocaleIndex(); _languageDropdown.value = languageIndex; } public void ChangeLanguage(int localeType) { _languageDropdown.value = localeType; LocalizationManager.Instance.ChangeLocale((LocaleType)localeType); } public void ShowUi() { _panel.SetActive(true); } public void HideUi() { _panel.SetActive(false); } }