Пример #1
0
    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);
    }
Пример #2
0
    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;
    }