2025-05-18 01:04:31 +08:00

104 lines
2.2 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// ***********************************************************************
// 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
}
}