private void PushMessageCache(int channel, string name, string msg) { if (channel < 0 || channel >= (int)ChatChannelType.ChannelType_Max) { GameDebug.Log("聊天信息频道出现错误 channel = " + channel.ToString()); return; } if (!mChanelCaches.ContainsKey(channel)) { mChanelCaches.Add(channel, new Queue <ChatCacheData>()); } Queue <ChatCacheData> queue = mChanelCaches[channel]; if (queue.Count >= msMaxCacheNum) { queue.Dequeue(); } string chkMsg = StrFilterManager.Instance.CheckAndReplace(msg); ChatCacheData data = new ChatCacheData(); data.name = name; data.msg = chkMsg; queue.Enqueue(data); ChatEvent e = new ChatEvent(ChatEvent.MODULE_TO_UI_MESSAGE_UPDATE); e.msg = msg; e.name = name; e.channel_type = channel; EventSystem.Instance.PushEvent(e); }
private void UpdateViews() { mAreaLabel.text = ""; ChatModule module = ModuleManager.Instance.FindModule <ChatModule>(); ChatCacheData[] msgs = module.GetMessageCache(mCurChannel); if (msgs == null) { return; } for (int i = 0; i < msgs.Length; ++i) { ChatCacheData data = msgs[i]; if (i != msgs.Length - 1) { data.msg += "\n"; } AddMessage(mCurChannel, data.name, data.msg); } mScrollBar.value = 1.0f; }