// *********************************************************************** // Assembly : Game // Author : Kimch // Created : 2020-12-10 // Description : // Last Modified By : // Last Modified On : // *********************************************************************** // // // *********************************************************************** using TMPro; using UnityEngine; using UnityEngine.UI; namespace G.UI { partial class ShopPanel { /// /// /// public class TimeBoxWidget : KUIWidget { #region Field //[KUIFlag] //GameObject _goRemainTime; //[KUIFlag] //TextMeshProUGUI _tmpRemainTime; [KUIFlag] #pragma warning disable CS0649 // 从未对字段“ShopBoxItem._imgIcon”赋值,字段将一直保持其默认值 null Image _imgIcon; #pragma warning restore CS0649 // 从未对字段“ShopBoxItem._imgIcon”赋值,字段将一直保持其默认值 null [KUIFlag] TextMeshProUGUI _tmpName; [KUIFlag] #pragma warning disable CS0649 // 从未对字段“ShopBoxItem._btnGet”赋值,字段将一直保持其默认值 null Button _btnGet; #pragma warning restore CS0649 // 从未对字段“ShopBoxItem._btnGet”赋值,字段将一直保持其默认值 null [KUIFlag] #pragma warning disable CS0649 // 从未对字段“ShopBoxItem._tmpGet”赋值,字段将一直保持其默认值 null TextMeshProUGUI _tmpGet; #pragma warning restore CS0649 // 从未对字段“ShopBoxItem._tmpGet”赋值,字段将一直保持其默认值 null private KUIImage _icon; #endregion #region Method public override void Refresh() { if (this.data is ShopProxy.TimeBox boxInfo) { var seconds = boxInfo.remainSecond; //_tmpRemainTime.text = F.Utils.Time.ToTimeString2(seconds); //_tmpName.text = boxInfo.name; _btnGet.interactable = boxInfo.canOpen; _tmpGet.text = boxInfo.canOpen ? "领取" : F.Utils.Time.ToTimeString2(seconds); _icon.ShowSprite(boxInfo.canOpen ? 0 : _icon.sprites.Length - 1); } } public void UpdateState() { if (this.data is ShopProxy.TimeBox boxInfo) { var seconds = boxInfo.remainSecond; //_goRemainTime.SetActive(seconds > 0); //_tmpRemainTime.text = F.Utils.Time.ToTimeString2(seconds); bool canOpen = boxInfo.canOpen; if (_btnGet.interactable != canOpen) { _btnGet.interactable = canOpen; _icon.ShowSprite(canOpen ? 0 : _icon.sprites.Length - 1); } _tmpGet.text = canOpen ? "领取" : F.Utils.Time.ToTimeString2(seconds); } } private void OnGetBtnClick() { SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND); if (this.data is ShopProxy.TimeBox boxInfo) { if (ShopProxy.Instance.OpenGiftBox(boxInfo.id)) { _icon.framesPerSecond = 20; UpdateState(); } } } #endregion #region Unity /// /// /// private void Awake() { SetViewData(); _btnGet.onClick.AddListener(this.OnGetBtnClick); _icon = _imgIcon.GetComponent(); } #endregion } } }