using UI.RoleInfo; using System.Text.RegularExpressions; using UnityEngine; using FairyGUI; namespace GFGGame { public class SettingView : BaseWindow { private UI_SettingUI _ui; private EffectUI _effectUI1; private EffectUI _effectUI2; private readonly float disabledVolumnSliderAlpha = 0.25f; public override void Dispose() { EffectUIPool.Recycle(_effectUI1); _effectUI1 = null; EffectUIPool.Recycle(_effectUI2); _effectUI2 = null; if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_SettingUI.PACKAGE_NAME; _ui = UI_SettingUI.Create(); this.viewCom = _ui.target; this.viewCom.Center(); this.modal = true; _ui.m_btnExit.onClick.Add(OnClickBtnExit); _ui.m_btnLogout.onClick.Add(OnClickBtnLogout); _ui.m_btnSound.onClick.Add(OnClickBtnSound); _ui.m_btnMusic.onClick.Add(OnClickBtnMusic); _ui.m_btnVoice.onClick.Add(OnClickBtnVoice); _ui.m_btnChooseMainBg.onClick.Add(OnClickBtnChangeMainBg); _ui.m_voiceSlider.onChanged.Add(OnChangeVoiceVolumn); _ui.m_musicSlider.onChanged.Add(OnChangeMusicVolumn); _ui.m_soundSlider.onChanged.Add(OnChangeSoundVolumn); AddEffect(); } protected override void OnShown() { base.OnShown(); AddEffect(); InitVolumnSetting(); } protected override void OnHide() { base.OnHide(); } private void AddEffect() { //邊框左上角特效 _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up"); //邊框右下角特效 _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down"); } private void OnClickBtnExit() { AlertSystem.Show("确认返回登录页吗?") .SetLeftButton(true) .SetRightButton(true, "确认", (object data) => { GameController.QuitToLoginView(false); }); } private void OnClickBtnLogout() { AlertSystem.Show("确认注销当前账号吗?") .SetLeftButton(true) .SetRightButton(true, "确认", (object data) => { GameController.QuitToLoginView(true); }); } private void OnClickBtnSound() { SoundManager.Instance.isOn = _ui.m_btnSound.selected; _ui.m_soundSlider.touchable = SoundManager.Instance.isOn; _ui.m_soundSlider.alpha = SoundManager.Instance.isOn ? 1 : disabledVolumnSliderAlpha; } private void OnClickBtnMusic() { MusicManager.Instance.isOn = _ui.m_btnMusic.selected; _ui.m_musicSlider.touchable = MusicManager.Instance.isOn; _ui.m_musicSlider.alpha = MusicManager.Instance.isOn ? 1 : disabledVolumnSliderAlpha; } private void OnClickBtnVoice() { VoiceManager.Instance.isOn = _ui.m_btnVoice.selected; _ui.m_voiceSlider.touchable = VoiceManager.Instance.isOn; _ui.m_voiceSlider.alpha = VoiceManager.Instance.isOn ? 1 : disabledVolumnSliderAlpha; } private void OnChangeVoiceVolumn() { float volumn = (float)_ui.m_voiceSlider.value / 100; VoiceManager.Instance.SetVolumn(volumn); Debug.LogError(volumn); LocalCache.SetFloat(LauncherConfig.VOICE_VOLUMN_KEY, volumn); } private void OnChangeMusicVolumn() { float volumn = (float)_ui.m_musicSlider.value / 100; MusicManager.Instance.SetSettingVolumn(volumn); MusicManager.Instance.SetVolume(volumn); LocalCache.SetFloat(LauncherConfig.MUSIC_VOLUMN_KEY, volumn); } private void OnChangeSoundVolumn() { float volumn = (float)_ui.m_soundSlider.value / 100; SoundManager.Instance.SetVolumn(volumn); LocalCache.SetFloat(LauncherConfig.SOUND_VOLUMN_KEY, volumn); } private void OnClickBtnChangeMainBg() { ViewManager.Show(); } private void InitVolumnSetting() { _ui.m_btnMusic.selected = MusicManager.Instance.isOn; _ui.m_musicSlider.touchable = MusicManager.Instance.isOn; _ui.m_musicSlider.alpha = MusicManager.Instance.isOn ? 1 : disabledVolumnSliderAlpha; _ui.m_musicSlider.value = MusicManager.Instance.GetSettingVolumn() * 100; _ui.m_btnSound.selected = SoundManager.Instance.isOn; _ui.m_soundSlider.touchable = SoundManager.Instance.isOn; _ui.m_soundSlider.alpha = SoundManager.Instance.isOn ? 1 : disabledVolumnSliderAlpha; _ui.m_soundSlider.value = GRoot.inst.soundVolume * 100; _ui.m_btnVoice.selected = VoiceManager.Instance.isOn; _ui.m_voiceSlider.touchable = VoiceManager.Instance.isOn; _ui.m_voiceSlider.alpha = VoiceManager.Instance.isOn ? 1 : disabledVolumnSliderAlpha; _ui.m_voiceSlider.value = VoiceManager.Instance.GetVolumn() * 100; } } }