| | |
| | | ShowGuildInfo(); |
| | | } |
| | | |
| | | private void OnUpdateTalkEvent(ChatChannel channel, TalkData data) |
| | | private void OnUpdateTalkEvent(ChatChannel channel, TalkData data, bool isSendBullet) |
| | | { |
| | | if (channel != ChatChannel.Guild) |
| | | return; |
| | |
| | | } |
| | | } |
| | | |
| | | List<TalkData> showTalkDatas = new List<TalkData>(); |
| | | void ShowTalkInfo() |
| | | { |
| | | if (!ChatManager.Instance.TryGetTalkData(ChatChannel.Guild, out List<TalkData> datas) || datas.IsNullOrEmpty()) |
| | |
| | | talkInfoText.text = string.Empty; |
| | | return; |
| | | } |
| | | showTalkDatas.Clear(); |
| | | |
| | | StringBuilder stringBuilder = new StringBuilder(); |
| | | int startIndex = Mathf.Max(datas.Count - 2, 0); |
| | | for (int i = startIndex; i < datas.Count; i++) |
| | | // 从后向前遍历,找到最后两条玩家消息(过滤掉系统消息和日期消息) |
| | | int count = 0; |
| | | for (int i = datas.Count - 1; i >= 0 && count < 2; i--) |
| | | { |
| | | TalkData data = datas[i]; |
| | | // 只保留玩家消息:非系统消息且非日期消息 |
| | | if (!data.isSystem && !data.isDate) |
| | | { |
| | | showTalkDatas.Insert(0, data); // 插入到列表开头以保持时间顺序 |
| | | count++; |
| | | } |
| | | } |
| | | |
| | | StringBuilder stringBuilder = new StringBuilder(); |
| | | for (int i = 0; i < showTalkDatas.Count; i++) |
| | | { |
| | | TalkData data = showTalkDatas[i]; |
| | | stringBuilder.Append(UIHelper.AppendColor(GetGuildChatAreaColor(data), GetGuildChatAreaContent(data))); |
| | | stringBuilder.AppendLine(); |
| | | } |
| | | |
| | | talkInfoText.text = stringBuilder.ToString(); |
| | | } |
| | | |
| | | } |