156 lines
3.6 KiB
C#
Raw Normal View History

2025-05-18 01:04:31 +08:00
// ***********************************************************************
// Assembly : Game
// Author : Kimch
// Created : 2020-09-17
// Description :
// Last Modified By :
// Last Modified On :
// ***********************************************************************
// <copyright file= "MenuPanel" company="KUNPO"></copyright>
// <summary></summary>
// ***********************************************************************
using UnityEngine;
using UnityEngine.UI;
namespace G.UI
{
/// <summary>
/// 暂停界面
/// </summary>
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<ItemMoves>(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
/// <summary>
///
/// </summary>
private void Awake()
{
SetViewData();
__listMoves.AddTemplate<MovesItem>(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
}
}