123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 |
- //------------------------------------------------------------
- // Game Framework
- // Copyright © 2013-2021 Jiang Yin. All rights reserved.
- // Homepage: https://gameframework.cn/
- // Feedback: mailto:ellan@gameframework.cn
- //------------------------------------------------------------
- using GameFramework.Localization;
- using UnityEngine;
- using UnityEngine.UI;
- using UnityGameFramework.Runtime;
- namespace MetaClient
- {
- public class SettingForm : UGuiForm
- {
- [SerializeField]
- private Toggle m_MusicMuteToggle = null;
- [SerializeField]
- private Slider m_MusicVolumeSlider = null;
- [SerializeField]
- private Toggle m_SoundMuteToggle = null;
- [SerializeField]
- private Slider m_SoundVolumeSlider = null;
- [SerializeField]
- private Toggle m_UISoundMuteToggle = null;
- [SerializeField]
- private Slider m_UISoundVolumeSlider = null;
- [SerializeField]
- private CanvasGroup m_LanguageTipsCanvasGroup = null;
- [SerializeField]
- private Toggle m_EnglishToggle = null;
- [SerializeField]
- private Toggle m_ChineseSimplifiedToggle = null;
- [SerializeField]
- private Toggle m_ChineseTraditionalToggle = null;
- [SerializeField]
- private Toggle m_KoreanToggle = null;
- private Language m_SelectedLanguage = Language.Unspecified;
- public void OnMusicMuteChanged(bool isOn)
- {
- GameEntry.Sound.Mute("Music", !isOn);
- m_MusicVolumeSlider.gameObject.SetActive(isOn);
- }
- public void OnMusicVolumeChanged(float volume)
- {
- GameEntry.Sound.SetVolume("Music", volume);
- }
- public void OnSoundMuteChanged(bool isOn)
- {
- GameEntry.Sound.Mute("Sound", !isOn);
- m_SoundVolumeSlider.gameObject.SetActive(isOn);
- }
- public void OnSoundVolumeChanged(float volume)
- {
- GameEntry.Sound.SetVolume("Sound", volume);
- }
- public void OnUISoundMuteChanged(bool isOn)
- {
- GameEntry.Sound.Mute("UISound", !isOn);
- m_UISoundVolumeSlider.gameObject.SetActive(isOn);
- }
- public void OnUISoundVolumeChanged(float volume)
- {
- GameEntry.Sound.SetVolume("UISound", volume);
- }
- public void OnEnglishSelected(bool isOn)
- {
- if (!isOn)
- {
- return;
- }
- m_SelectedLanguage = Language.English;
- RefreshLanguageTips();
- }
- public void OnChineseSimplifiedSelected(bool isOn)
- {
- if (!isOn)
- {
- return;
- }
- m_SelectedLanguage = Language.ChineseSimplified;
- RefreshLanguageTips();
- }
- public void OnChineseTraditionalSelected(bool isOn)
- {
- if (!isOn)
- {
- return;
- }
- m_SelectedLanguage = Language.ChineseTraditional;
- RefreshLanguageTips();
- }
- public void OnKoreanSelected(bool isOn)
- {
- if (!isOn)
- {
- return;
- }
- m_SelectedLanguage = Language.Korean;
- RefreshLanguageTips();
- }
- public void OnSubmitButtonClick()
- {
- if (m_SelectedLanguage == GameEntry.Localization.Language)
- {
- Close();
- return;
- }
- GameEntry.Setting.SetString(Constant.Setting.Language, m_SelectedLanguage.ToString());
- GameEntry.Setting.Save();
- GameEntry.Sound.StopMusic();
- UnityGameFramework.Runtime.GameEntry.Shutdown(ShutdownType.Restart);
- }
- #if UNITY_2017_3_OR_NEWER
- protected override void OnOpen(object userData)
- #else
- protected internal override void OnOpen(object userData)
- #endif
- {
- base.OnOpen(userData);
- m_MusicMuteToggle.isOn = !GameEntry.Sound.IsMuted("Music");
- m_MusicVolumeSlider.value = GameEntry.Sound.GetVolume("Music");
- m_SoundMuteToggle.isOn = !GameEntry.Sound.IsMuted("Sound");
- m_SoundVolumeSlider.value = GameEntry.Sound.GetVolume("Sound");
- m_UISoundMuteToggle.isOn = !GameEntry.Sound.IsMuted("UISound");
- m_UISoundVolumeSlider.value = GameEntry.Sound.GetVolume("UISound");
- m_SelectedLanguage = GameEntry.Localization.Language;
- switch (m_SelectedLanguage)
- {
- case Language.English:
- m_EnglishToggle.isOn = true;
- break;
- case Language.ChineseSimplified:
- m_ChineseSimplifiedToggle.isOn = true;
- break;
- case Language.ChineseTraditional:
- m_ChineseTraditionalToggle.isOn = true;
- break;
- case Language.Korean:
- m_KoreanToggle.isOn = true;
- break;
- default:
- break;
- }
- }
- #if UNITY_2017_3_OR_NEWER
- protected override void OnUpdate(float elapseSeconds, float realElapseSeconds)
- #else
- protected internal override void OnUpdate(float elapseSeconds, float realElapseSeconds)
- #endif
- {
- base.OnUpdate(elapseSeconds, realElapseSeconds);
- if (m_LanguageTipsCanvasGroup.gameObject.activeSelf)
- {
- m_LanguageTipsCanvasGroup.alpha = 0.5f + 0.5f * Mathf.Sin(Mathf.PI * Time.time);
- }
- }
- private void RefreshLanguageTips()
- {
- m_LanguageTipsCanvasGroup.gameObject.SetActive(m_SelectedLanguage != GameEntry.Localization.Language);
- }
- }
- }
|