104 lines
2.2 KiB
C#
Raw Permalink Normal View History

2025-05-18 01:04:31 +08:00
// ***********************************************************************
// Assembly : Game
// Author : Kimch
// Created : 2021-04-23
// Description :
// Last Modified By :
// Last Modified On :
// ***********************************************************************
// <copyright file= "MailWidget" company="Kunpo"></copyright>
// <summary></summary>
// ***********************************************************************
using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace G.UI
{
/// <summary>
///
/// </summary>
public class MailWidget : KUIWidget
{
#region Field
[KUIFlag]
#pragma warning disable CS0649 // 从未对字段“MailWidget._imgIcon”赋值字段将一直保持其默认值 null
Image _imgIcon;
[KUIFlag]
TextMeshProUGUI _tmpTitle;
[KUIFlag]
TextMeshProUGUI _tmpContent;
[KUIFlag]
GameObject _imgStatus;
[KUIFlag]
Button _btnBg;
#pragma warning restore CS0649 // 从未对字段“MailWidget._btnBg”赋值字段将一直保持其默认值 null
KUIImage _mailBGStatus;
KUIImage _mailStatus;
#endregion
#region Method
public override void Refresh()
{
if (this.data is Mail mail)
{
_tmpTitle.text = mail.title;
_tmpContent.text = mail.sender;
SetStatus(mail.status, mail.giveItems != null && mail.giveItems.Length > 0);
}
}
/// <summary>
///
/// </summary>
/// <param name="status">0,1,2</param>
private void SetStatus(int status, bool hasAward)
{
if (status == 0)
{
_imgStatus.SetActive(false);
_mailBGStatus.ShowSprite(0);
_mailStatus.ShowSprite(hasAward ? 1 : 0);
}
else// if (status == 1)
{
_imgStatus.SetActive(true);
_mailBGStatus.ShowSprite(1);
_mailStatus.ShowSprite(hasAward ? 3 : 2);
}
}
private void OnBgBtnClick()
{
if (this.data is Mail mail)
{
MailProxy.Instance.Read(mail, null);
SendNotification(GlobalDefine.EVENT_MAIL_SELECTED, this.data);
}
}
#endregion
#region Unity
/// <summary>
///
/// </summary>
private void Awake()
{
SetViewData();
_btnBg.onClick.AddListener(this.OnBgBtnClick);
_mailBGStatus = _btnBg.GetComponent<KUIImage>();
_mailStatus = _imgIcon.GetComponent<KUIImage>();
}
#endregion
}
}