/// <summary> /// 打开Tip /// </summary> private void OpenTip(MailDataVO data) { if (m_TipPrefab) { if (!m_TipInstance1) { m_TipInstance1 = m_TipPrefab.Spawn(TipBoxLeft); m_TipInstance1.GetComponent <RectTransform>().anchoredPosition = Vector2.zero; } LayoutMailTip(m_TipInstance1, data); } else if (!m_TipPrefabLoading) { m_TipPrefabLoading = true; LoadPrefabFromPool(TIP_PREFAB, (prefab) => { if (Opened) { m_TipPrefab = prefab; OpenTipView(); } }); } }
/// <summary> /// 邮件 返回邮件列表 /// </summary> /// <param name="buf"></param> private void GetMailList(KProtoBuf buf) { S2C_MAIL_GET_LIST msg = buf as S2C_MAIL_GET_LIST; m_MailCount = (int)msg.totalMailsCount; m_IsGetList = true; for (int i = 0; i < msg.mailList.Count; i++) { MailSimpleData m_Data = msg.mailList[i]; MailDataVO m_Maildate = new MailDataVO(); m_Maildate.Id = m_Data.id; m_Maildate.Tid = m_Data.tid; m_Maildate.Index = m_Data.index; m_Maildate.MaxCount = m_Data.max_index; m_Maildate.ExpireTime = m_Data.expireTime; m_Maildate.SendTime = m_Data.recvTime; m_Maildate.Readed = m_Data.readed; m_Maildate.Got = m_Data.got; m_Maildate.IsMark = m_Data.starred; m_Maildate.HasAccessory = m_Data.has_accessory; m_Maildate.IsNew = m_Data.is_new; GetMailProxy().AddMail(m_Data.id, m_Maildate); } }
/// <summary> /// 邮件 通知有新邮件 /// </summary> /// <param name="buf"></param> private void MailNew(KProtoBuf buf) { S2C_MAIL_NEW msg = buf as S2C_MAIL_NEW; m_IsGetList = false; MailSimpleData m_Data = msg.new_mail; if (GetMailProxy().GetMails().TryGetValue(m_Data.id, out MailDataVO mailData)) { return; } MailDataVO m_Maildate = new MailDataVO(); m_Maildate.Id = m_Data.id; m_Maildate.Tid = m_Data.tid; m_Maildate.Index = m_Data.index; m_Maildate.MaxCount = m_Data.max_index; m_Maildate.ExpireTime = m_Data.expireTime; m_Maildate.SendTime = m_Data.recvTime; m_Maildate.Readed = m_Data.readed; m_Maildate.Got = m_Data.got; m_Maildate.IsMark = m_Data.starred; m_Maildate.HasAccessory = m_Data.has_accessory; m_Maildate.IsNew = m_Data.is_new; GetMailProxy().AddMail(m_Data.id, m_Maildate); GameFacade.Instance.SendNotification(NotificationName.MSG_EMAIL_RENDERLIST); }
/// <summary> /// /// </summary> /// <param name="view"></param> /// <param name="data"></param> private void LayoutMailTip(GameObject view, MailDataVO data) { int index = 0; Transform m_TipsTransform = FindComponent <Transform>(view.transform, "TipsScrollView/ALL"); TextMeshProUGUI m_Title = FindComponent <TextMeshProUGUI>(view.transform, "TipsScrollView/ALL/Content/NameType/Label_Name"); TextMeshProUGUI m_Sender = FindComponent <TextMeshProUGUI>(view.transform, "TipsScrollView/ALL/Content/NameType/Type/Label_Type"); TextMeshProUGUI m_Describe = FindComponent <TextMeshProUGUI>(view.transform, "TipsScrollView/ALL/Content/Describe/Label_Describe"); Transform itemRootTf = FindComponent <Transform>(view.transform, "TipsScrollView/ALL/Content/Materials"); m_Title.text = data.Title; m_Sender.text = data.Sender; m_Describe.text = data.Content; m_Describe.text = m_Describe.text.Replace("\\n", "\n"); if (data.Items == null) { return; } for (; index < data.Items.Count; index++) { RewardDateVO mailReward = data.Items[index]; Transform node = index < itemRootTf.childCount ? itemRootTf.GetChild(index) : Object.Instantiate(itemRootTf.GetChild(0), itemRootTf); Image icon = FindComponent <Image>(node, "Content/Icon/Icon"); Image quality = FindComponent <Image>(node, "Content/Icon/Quality"); TMP_Text name = FindComponent <TMP_Text>(node, "Content/Label_Name"); TMP_Text num = FindComponent <TMP_Text>(node, "Content/Label_Num"); name.text = TableUtil.GetItemName((int)mailReward.Id); num.text = mailReward.Num.ToString(); quality.color = ColorUtil.GetColorByItemQuality(mailReward.Quality); string iconName = TableUtil.GetItemSquareIconImage(mailReward.Id); UIUtil.SetIconImage(icon, TableUtil.GetItemIconBundle(mailReward.Id), iconName); if (data.Got == 1) { icon.color = Color.gray; } else { icon.color = Color.white; } node.gameObject.SetActive(true); } for (; index < itemRootTf.childCount; index++) { itemRootTf.GetChild(index).gameObject.SetActive(false); } }
public override void OnHide() { m_LastMailSelectVo = null; m_LastLogSelectVo = null; if (m_NewIds != null && m_NewIds.Count > 0) { NetworkManager.Instance.GetMailController().C_to_S_ClearNew(m_NewIds); } m_NewIds.Clear(); OwnerView.State.GetAction(UIAction.Mail_Retrieve).Callback -= GetAccessory; OwnerView.State.GetAction(UIAction.Mail_Empty).Callback -= DeleteAll; OwnerView.State.GetAction(UIAction.Mail_Delete).Callback -= DeleteMail; OwnerView.State.GetAction(UIAction.Mail_Mark).Callback -= SetMarkMail; State.OnSelectionChanged += OnSelectionChanged; base.OnHide(); }
protected override void OnCellRenderer(int groupIndex, int cellIndex, object cellData, RectTransform cellView, bool selected) { Animator m_Animator = cellView.GetComponent <Animator>(); if (m_Animator) { m_Animator.SetBool("IsOn", selected); } if (OwnerView.State.GetPageIndex() == 0) { MailDataVO m_MailVo = (MailDataVO)cellData; if (selected) { if (m_LastMailSelectVo != m_MailVo) { m_LastMailSelectVo = m_MailVo; NetworkManager.Instance.GetMailController().C_to_S_GetMailContent(m_LastMailSelectVo.Id); if (m_LastMailSelectVo.IsNew == 1) { RecordNewMail(m_LastMailSelectVo.Id); m_MailProxy.ClearMailNew(m_LastMailSelectVo.Id); } } object data = OwnerView.State.GetTipData(); OwnerView.State.SetTipData(null); OwnerView.State.SetTipData(data); SetMailState(); } MailTemplate m_MailTemplate = cellView.GetOrAddComponent <MailTemplate>(); m_MailTemplate.Init(m_MailVo, RecordNewMail); } else { LogDataVO m_LogVo = (LogDataVO)cellData; LogTemplate m_LogTemplate = cellView.GetOrAddComponent <LogTemplate>(); m_LogTemplate.Init(m_LogVo); if (selected) { m_LastLogSelectVo = m_LogVo; SetLogState(); } } }
/// <summary> /// 初始化内容并设置Tips /// </summary> /// <param name="mailDate"></param> public void Init(MailDataVO mailDate, UnityAction <string> action) { if (m_Root == null) { m_Root = TransformUtil.FindUIObject <Transform>(transform, "Content"); } if (m_MailIcon == null) { m_MailIcon = TransformUtil.FindUIObject <Image>(transform, "Content/Image_Icon"); } if (m_OverlyingIcon == null) { m_OverlyingIcon = TransformUtil.FindUIObject <Image>(transform, "Content/Image_Icon2"); } if (m_SendName == null) { m_SendName = TransformUtil.FindUIObject <TextMeshProUGUI>(transform, "Content/Label_Name"); } if (m_ResidualTime == null) { m_ResidualTime = TransformUtil.FindUIObject <TextMeshProUGUI>(transform, "Content/Label_LeftTime"); } if (m_MailName == null) { m_MailName = TransformUtil.FindUIObject <TextMeshProUGUI>(transform, "Content/Label_Sender"); } if (m_MailNew == null) { m_MailNew = TransformUtil.FindUIObject <Transform>(transform, "Content/Image_New"); } if (m_MailMark == null) { m_MailMark = TransformUtil.FindUIObject <Transform>(transform, "Content/Image_Mark"); } m_Data = mailDate; m_Hover = action; SetContent(); }
/// <summary> /// 添加邮件 /// </summary> /// <param name="id"></param> /// <param name="maildate"></param> public void AddMail(string id, MailDataVO maildate) { m_Mails[id] = maildate; }