// *********************************************************************** // Assembly : Game // Author : Kimch // Created : 2020-09-17 // Description : // Last Modified By : // Last Modified On : // *********************************************************************** // // // *********************************************************************** using UnityEngine; using UnityEngine.UI; namespace G.UI { /// /// 暂停界面 /// public class MenuPanel : KUIWidget { public class MovesItem : KUIWidget { #pragma warning disable CS0649 // 从未对字段赋值,字段将一直保持其默认值 null [KUIFlag] Image _imgIcon; [KUIFlag] TMPro.TextMeshProUGUI _tmpName; #pragma warning restore CS0649 // 从未对字段赋值,字段将一直保持其默认值 null public override void Refresh() { if (this.data is ItemMoves item) { _tmpName.text = item.name; IconProxy.Instance.SetSprite(_imgIcon, item.icon); } } private void Awake() { SetViewData(); } } #region Field #pragma warning disable CS0649 // 从未对字段赋值,字段将一直保持其默认值 null [KUIFlag] Button _btnQuit; [KUIFlag] Button _btnContinue; [KUIFlag] KUIList __listMoves; [KUIFlag] Toggle _tgTrackEnemy; [KUIFlag] Toggle _tgVibrateSwitch; [KUIFlag] GameObject _goStudy; [KUIFlag] GameObject _goNoStudy; #pragma warning restore CS0649 // 从未对字段赋值,字段将一直保持其默认值 null #endregion #region Method public override void Refresh() { __listMoves.Clear(); var studiedMoves = MovesShop.Instance.studiedMoves; if (studiedMoves.Count > 0) { foreach (var id in studiedMoves) { var movesItem = ItemProxy.Instance.GetStaticItem(id); __listMoves.GetItem().SetData(movesItem); } _goStudy.SetActive(true); _goNoStudy.SetActive(false); } else { _goStudy.SetActive(false); _goNoStudy.SetActive(true); } _tgTrackEnemy.isOn = GameLevel.Instance.autoTrackEnemy; _tgVibrateSwitch.isOn = GameLevel.Instance.vibrateSwitch; } private void OnQuitBtnClick() { gameObject.SetActive(false); UI_Ingame.Instance.OnClickRestart(); SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND); } private void OnContinueBtnClick() { gameObject.SetActive(false); UI_Ingame.Instance.OnClickContinue(); PostNotification(GlobalDefine.EVENT_GAME_WINDOW, nameof(MenuPanel), nameof(BattlePanel)); SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND); } private void OnTrackEnemyToggleValueChanged(bool value) { GameLevel.Instance.autoTrackEnemy = value; SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND); } private void OnVibrateSwitchToggleValueChanged(bool value) { GameLevel.Instance.vibrateSwitch = value; SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND); } #endregion #region Unity /// /// /// private void Awake() { SetViewData(); __listMoves.AddTemplate(true); _btnQuit.onClick.AddListener(this.OnQuitBtnClick); _btnContinue.onClick.AddListener(this.OnContinueBtnClick); _tgTrackEnemy.onValueChanged.AddListener(this.OnTrackEnemyToggleValueChanged); _tgVibrateSwitch.onValueChanged.AddListener(this.OnVibrateSwitchToggleValueChanged); } private void OnEnable() { Refresh(); } private void Update() { UnityEngine.Time.timeScale = 0f; } #endregion } }