CapersProject/Assets/02.Scripts/Ui/Title/TitleSetting.cs
2024-11-17 13:29:57 +09:00

90 lines
2.1 KiB
C#

using System.Collections;
using BlueWater;
using BlueWater.Audios;
using TMPro;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.UI;
public class TitleSetting : 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;
private InputAction _cancelAction;
private void Start()
{
_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);
}
}