409 lines
13 KiB
C#
409 lines
13 KiB
C#
// ***********************************************************************
|
|
// Assembly : Game
|
|
// Author : Kimch
|
|
// Created : 2020-12-25
|
|
// Description :
|
|
// Last Modified By :
|
|
// Last Modified On :
|
|
// ***********************************************************************
|
|
// <copyright file= "SettingWindow.View" company="Kunpo"></copyright>
|
|
// <summary></summary>
|
|
// ***********************************************************************
|
|
namespace G.UI
|
|
{
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
partial class SettingWindow
|
|
{
|
|
#region Field
|
|
|
|
#pragma warning disable CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
|
|
[KUIFlag]
|
|
Button _btnClose;
|
|
[KUIFlag]
|
|
TextMeshProUGUI _tmpName;
|
|
[KUIFlag]
|
|
TextMeshProUGUI _tmpForce;
|
|
[KUIFlag]
|
|
TextMeshProUGUI _tmpDesciption;
|
|
[KUIFlag]
|
|
TextMeshProUGUI _tmpGrade;
|
|
[KUIFlag]
|
|
Image _imgHeadIcon;
|
|
[KUIFlag]
|
|
TextMeshProUGUI _tmpId;
|
|
[KUIFlag]
|
|
TextMeshProUGUI _tmpLevelProgress;
|
|
[KUIFlag]
|
|
TextMeshProUGUI _tmpAccSwitch;
|
|
|
|
[KUIFlag]
|
|
Toggle _tgMusicBg;
|
|
[KUIFlag]
|
|
Toggle _tgAudioFx;
|
|
[KUIFlag]
|
|
Toggle _tgScreenFit;
|
|
//[KUIFlag]
|
|
//Toggle _tgVibrate;
|
|
[KUIFlag]
|
|
Toggle _tgLowEffect;
|
|
//[KUIFlag]
|
|
//Toggle _tgLowFrameRate;
|
|
|
|
[KUIFlag]
|
|
Button _btnNameChanged;
|
|
[KUIFlag]
|
|
Button _btnRedeem;
|
|
[KUIFlag]
|
|
Button _btnFeedback;
|
|
[KUIFlag]
|
|
Button _btnAccBind;
|
|
[KUIFlag]
|
|
Button _btnAccSwitch;
|
|
[KUIFlag]
|
|
Button _btnUploadArchive;
|
|
[KUIFlag]
|
|
TextMeshProUGUI _tmpUploadArchiveInfo;
|
|
[KUIFlag]
|
|
Button _btnLogoff;
|
|
[KUIFlag]
|
|
Button _btnUserAgreement;
|
|
[KUIFlag]
|
|
Button _btnPrivacyPolicy;
|
|
[KUIFlag]
|
|
Button _btnIdentifyProtocol;
|
|
[KUIFlag]
|
|
Button _btnRepair;
|
|
[KUIFlag]
|
|
Button _btnHead;
|
|
#pragma warning restore CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
|
|
|
|
private Slider _musicBgSlider;
|
|
private Slider _audioFxSlider;
|
|
|
|
#endregion
|
|
|
|
#region Method
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public void InitView()
|
|
{
|
|
SetViewData();
|
|
_btnClose.onClick.AddListener(this.OnCloseBtnClick);
|
|
_btnNameChanged.onClick.AddListener(this.OnNameChangedClick);
|
|
_tmpId.GetComponent<Button>().onClick.AddListener(OnIdClick);
|
|
|
|
var music_bg = SoundProxy.Instance.bgEnabled;
|
|
_tgMusicBg.isOn = music_bg;
|
|
_tgMusicBg.onValueChanged.AddListener(this.OnMusicBgValueChanged);
|
|
|
|
var music_bg_v = SoundProxy.Instance.bgVolume;
|
|
_musicBgSlider = _tgMusicBg.GetComponentInChildren<Slider>();
|
|
_musicBgSlider.value = music_bg_v;
|
|
_musicBgSlider.onValueChanged.AddListener(this.OnMusicBgValueChanged);
|
|
_musicBgSlider.interactable = _tgMusicBg.isOn;
|
|
|
|
var audio_fx = SoundProxy.Instance.fxEnabled;
|
|
_tgAudioFx.isOn = audio_fx;
|
|
_tgAudioFx.onValueChanged.AddListener(this.OnAudioFxValueChanged);
|
|
|
|
var audio_fx_v = SoundProxy.Instance.fxVolume;
|
|
_audioFxSlider = _tgAudioFx.GetComponentInChildren<Slider>();
|
|
_audioFxSlider.value = audio_fx_v;
|
|
_audioFxSlider.onValueChanged.AddListener(this.OnAudioFxValueChanged);
|
|
_audioFxSlider.interactable = _tgAudioFx.isOn;
|
|
|
|
////
|
|
_tgLowEffect.isOn = SettingProxy.Instance.lowEffect;
|
|
_tgLowEffect.onValueChanged.AddListener(this.OnEffectValueChanged);
|
|
////
|
|
_tgScreenFit.isOn = SettingProxy.Instance.screenFit;
|
|
_tgScreenFit.onValueChanged.AddListener(this.OnScreenValueChanged);
|
|
|
|
////
|
|
_btnRedeem.onClick.AddListener(this.OnRedeemBtnClick);
|
|
_btnFeedback.onClick.AddListener(this.OnFeedbackBtnClick);
|
|
|
|
_btnAccBind.onClick.AddListener(this.OnAccBindBtnClick);
|
|
_btnAccSwitch.onClick.AddListener(this.OnAccSwitchBtnClick);
|
|
_btnUploadArchive.onClick.AddListener(this.OnUploadArchiveBtnClick);
|
|
|
|
if (KPlatform.Instance.IsVisitor())
|
|
{
|
|
_btnLogoff.gameObject.SetActive(false);
|
|
}
|
|
_btnLogoff.onClick.AddListener(this.OnLogoffBtnClick);
|
|
|
|
_btnUserAgreement.onClick.AddListener(this.OnUserAgreementBtnClick);
|
|
_btnPrivacyPolicy.onClick.AddListener(this.OnPrivacyPolicyBtnClick);
|
|
_btnIdentifyProtocol.onClick.AddListener(this.OnIdentifyProtocolBtnClick);
|
|
|
|
_btnRepair.onClick.AddListener(this.OnRepairResBtnClick);
|
|
|
|
_btnHead.onClick.AddListener(this.OnHeadBtnClick);
|
|
|
|
if (KPlatform.Instance.supportSwitchAccount)
|
|
{
|
|
_btnAccBind.gameObject.SetActive(true);
|
|
_btnAccSwitch.gameObject.SetActive(true);
|
|
}
|
|
else
|
|
{
|
|
_btnAccBind.gameObject.SetActive(false);
|
|
_btnAccSwitch.gameObject.SetActive(false);
|
|
}
|
|
|
|
if (KPlatform.Instance.supportPrivacyProtocol)
|
|
{
|
|
_btnUserAgreement.gameObject.SetActive(true);
|
|
_btnPrivacyPolicy.gameObject.SetActive(true);
|
|
_btnLogoff.gameObject.SetActive(true);
|
|
}
|
|
else
|
|
{
|
|
_btnUserAgreement.gameObject.SetActive(false);
|
|
_btnPrivacyPolicy.gameObject.SetActive(false);
|
|
_btnLogoff.gameObject.SetActive(false);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public void RefreshView()
|
|
{
|
|
_tmpName.text = PlayerProxy.Instance.nickName;
|
|
//_tmpGrade.text = PlayerProxy.Instance.grade.ToString();
|
|
_tmpForce.text = PlayerProxy.Instance.combatValue.ToString();
|
|
|
|
var levelItem = ItemProxy.Instance.GetStaticItem<ItemLevel>(LevelProxy.Instance.currentUnlockedLevel);
|
|
if (levelItem != null)
|
|
_tmpLevelProgress.text = levelItem.name;
|
|
|
|
_tmpUploadArchiveInfo.text = ArchiveProxy.Instance.autoUploadArchiveMessage;
|
|
_tmpId.text = UserProxy.UserId + $"({KPlatform.Instance.loginTypeText})";
|
|
|
|
if (KRemoteConfig.Instance.isReview)
|
|
{
|
|
_btnRedeem.gameObject.SetActive(false);
|
|
_btnFeedback.gameObject.SetActive(false);
|
|
}
|
|
else
|
|
{
|
|
_btnRedeem.gameObject.SetActive(true);
|
|
_btnFeedback.gameObject.SetActive(false);
|
|
}
|
|
|
|
if (KPlatform.Instance.IsVisitor())
|
|
{
|
|
if (KPlatform.Instance.supportSwitchAccount)
|
|
_btnAccBind.gameObject.SetActive(true);
|
|
_btnFeedback.gameObject.SetActive(false);
|
|
}
|
|
else
|
|
{
|
|
if (KPlatform.Instance.supportSwitchAccount)
|
|
_btnAccBind.gameObject.SetActive(false);
|
|
_btnFeedback.gameObject.SetActive(false);
|
|
}
|
|
|
|
RefreshAvatar();
|
|
}
|
|
|
|
private void RefreshAvatar()
|
|
{
|
|
var headURL = PlayerProxy.Instance.headURL;
|
|
if (int.TryParse(headURL, out var avatarId))
|
|
{
|
|
var chaAvatar = ItemProxy.Instance.GetStaticItem<ItemChaAvatar>(avatarId);
|
|
if (chaAvatar != null)
|
|
IconProxy.Instance.SetSprite(_imgHeadIcon, chaAvatar.icon);
|
|
}
|
|
}
|
|
|
|
private void RefreshNickName()
|
|
{
|
|
_tmpName.text = PlayerProxy.Instance.nickName;
|
|
}
|
|
|
|
private void OnCloseBtnClick()
|
|
{
|
|
CloseWindow(this);
|
|
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
}
|
|
|
|
private void OnIdClick()
|
|
{
|
|
if (KPlatform.Instance.SetClipboardData(UserProxy.UserId))
|
|
ToastBox.ShowText("复制帐号");
|
|
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
}
|
|
|
|
private void OnNameChangedClick()
|
|
{
|
|
#if SDK_WECHAT_WASM
|
|
KPlatform.Instance.GetUserNickName((error, message) =>
|
|
{
|
|
if (error == 0)
|
|
{
|
|
RefreshNickName();
|
|
ToastBox.ShowText("同步昵称");
|
|
}
|
|
});
|
|
#else
|
|
NameBox.Show(_tmpName.text, (result) =>
|
|
{
|
|
if (!string.IsNullOrEmpty(result))
|
|
{
|
|
_tmpName.text = result;
|
|
PlayerProxy.Instance.nickName = result;
|
|
PostNotification(GlobalDefine.EVENT_NAME_CHANGED);
|
|
}
|
|
});
|
|
#endif
|
|
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
}
|
|
|
|
private void OnMusicBgValueChanged(bool value)
|
|
{
|
|
SoundProxy.Instance.bgEnabled = value;
|
|
_musicBgSlider.interactable = value;
|
|
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
}
|
|
|
|
private void OnMusicBgValueChanged(float value)
|
|
{
|
|
SoundProxy.Instance.bgVolume = value;
|
|
}
|
|
|
|
private void OnAudioFxValueChanged(bool value)
|
|
{
|
|
SoundProxy.Instance.fxEnabled = value;
|
|
_audioFxSlider.interactable = value;
|
|
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
}
|
|
|
|
private void OnAudioFxValueChanged(float value)
|
|
{
|
|
SoundProxy.Instance.fxVolume = value;
|
|
}
|
|
|
|
//private void OnLowFrameRateValueChanged(bool value)
|
|
//{
|
|
// SettingProxy.Instance.lowFrameRate = value;
|
|
// SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
//}
|
|
|
|
private void OnEffectValueChanged(bool value)
|
|
{
|
|
SettingProxy.Instance.lowEffect = value;
|
|
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
}
|
|
|
|
private void OnScreenValueChanged(bool value)
|
|
{
|
|
SettingProxy.Instance.screenFit = value;
|
|
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
}
|
|
|
|
private void OnRedeemBtnClick()
|
|
{
|
|
CloseWindow(this);
|
|
OpenWindow<RedeemBox>();
|
|
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
}
|
|
|
|
private void OnFeedbackBtnClick()
|
|
{
|
|
KPlatform.Instance.OpenFeedback();
|
|
//SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
}
|
|
|
|
private void OnUserAgreementBtnClick()
|
|
{
|
|
KPlatform.Instance.OpenUserProtocol();
|
|
//SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
}
|
|
|
|
private void OnPrivacyPolicyBtnClick()
|
|
{
|
|
KPlatform.Instance.OpenPrivacyProtocol();
|
|
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
}
|
|
|
|
private void OnIdentifyProtocolBtnClick()
|
|
{
|
|
KPlatform.Instance.OpenIdentifyProtocol();
|
|
}
|
|
|
|
private void OnLogoffBtnClick()
|
|
{
|
|
KPlatform.Instance.OpenLogoffProtocol();
|
|
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
}
|
|
|
|
private void OnRepairResBtnClick()
|
|
{
|
|
MessageBox.ShowMessage("修复游戏", "确定后将重启游戏",
|
|
() =>
|
|
{
|
|
AssetProxy.Instance.Repair();
|
|
Application.Quit();
|
|
},
|
|
() => { });
|
|
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
}
|
|
|
|
private void OnHeadBtnClick()
|
|
{
|
|
CloseWindow(this);
|
|
OpenWindow<AvatarBox>();
|
|
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
}
|
|
|
|
private void OnAccBindBtnClick()
|
|
{
|
|
ServerProxy.LoginSuccessEvent = OnLoginSuccess;
|
|
KPlatform.Instance.VisitorBindAccount();
|
|
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
}
|
|
|
|
private void OnAccSwitchBtnClick()
|
|
{
|
|
ServerProxy.LoginSuccessEvent = OnLoginSuccess;
|
|
KPlatform.Instance.SwitchAccount();
|
|
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
}
|
|
|
|
private void OnUploadArchiveBtnClick()
|
|
{
|
|
if (!AntiCheatProxy.Instance.isCheat)
|
|
{
|
|
ArchiveProxy.Instance.Upload(false, (err, msg) =>
|
|
{ _tmpUploadArchiveInfo.text = msg; });
|
|
}
|
|
else
|
|
{
|
|
ToastBox.ShowText("上传存档失败,请检查手机时间");
|
|
}
|
|
|
|
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
}
|
|
|
|
private void OnLoginSuccess()
|
|
{
|
|
_btnLogoff.gameObject.SetActive(KPlatform.Instance.IsVisitor());
|
|
CloseWindow(this);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|