public override void recvFrameStep(BroadcastEvent eve)
    {
        base.recvFrameStep(eve);

        RecvFrameBst bst = ((RecvFrameBst)eve.Data);

        //    if (bst.Frame.Items.Count != 0)
        //       Debug.Log("----收到帧消息:" + bst.Frame.Id + "\r\n");
        foreach (FrameItem fi in bst.Frame.Items)
        {
            XXFrameData xfd = XXFrameData.init(fi.Data);
            int         kk  = xfd.intData;
            //            Debug.LogError("ssss:"+kk+":"+UserManager.instance.UType);
            if ((UserType)xfd.intData != UserManager.instance.UType)
            {
                //                                                          Debug.Log(xfd.strData);
                JsonData jsonData = JsonMapper.ToObject(xfd.strData);
                if (((IDictionary)jsonData).Contains("mark"))
                {
                    string canvasId = jsonData["mark"].ToString();

                    //选择不同的画布
                    if (paintClients.ContainsKey(canvasId))
                    {
                        if (((IDictionary)jsonData).Contains("ctrl-data"))
                        {
                            //                             Debug.LogError("Contain ID:" + canvasId + "DDD:" + jsonData["ctrl-data"].ToJson());
                            UserDefEventHandler handler = paintClients[canvasId];
                            if (handler == null || handler.painterClientController == null)
                            {
                                Debug.LogError("Some NUll");
                            }
                            if (handler.painterClientController.painterCanvas.isInited)
                            {
                                paintClients[canvasId].painterClientController.UpdatePara(jsonData["ctrl-data"]);
                            }
                        }
                    }
                }
            }
            //            Debug.Log(fi.PlayerId + "|" + fi.Data + "\r\n");
        }
    }
예제 #2
0
    public override void recvFrameStep(BroadcastEvent eve)
    {
        base.recvFrameStep(eve);
        RecvFrameBst bst = ((RecvFrameBst)eve.Data);

        //    if (bst.Frame.Items.Count != 0)
        //       Debug.Log("----收到帧消息:" + bst.Frame.Id + "\r\n");
        try
        {
            foreach (FrameItem fi in bst.Frame.Items)
            {
                XXFrameData xfd = XXFrameData.init(fi.Data);
                //    Debug.LogError("strData:" +xfd.strData);
                if ((UserType)xfd.intData != UserManager.instance.UType)
                {
                    JsonData jsonData = JsonMapper.ToObject(xfd.strData);
                    if (((IDictionary)jsonData).Contains("expert"))
                    {
                        bool temp = false;
                        temp = bool.Parse(jsonData["expert"].ToString());
                        videoController.SetStaffVideoType(temp);
                    }


                    if (((IDictionary)jsonData).Contains("mark"))
                    {
                        actPanelName = new List <string>();
                        for (int j = 0; j < jsonData["mark"].Count; j++)
                        {
                            string temp = jsonData["mark"][j].ToString();
                            actPanelName.Add(temp);
                            //            Debug.LogError("mark:" + temp + " paintCanvasDic:" + paintCanvasDic.Count);
                            bool find = false;
                            for (int i = 0; i < paintContainer.Length; i++)
                            {
                                if (paintContainer[i].tarName == temp)
                                {
                                    find = true;
                                    break;
                                }
                            }
                            if (!find)
                            {
                                for (int i = 0; i < paintContainer.Length; i++)
                                {
                                    if (paintContainer[i].tarName == "")
                                    {
                                        paintContainer[i].tarName = temp;
                                        break;
                                    }
                                }
                            }
                        }
                        for (int i = 0; i < paintContainer.Length; i++)
                        {
                            bool find = false;
                            for (int k = 0; k < actPanelName.Count; k++)
                            {
                                if (paintContainer[i].tarName == actPanelName[k])
                                {
                                    find = true;
                                    break;
                                }
                            }
                            if (!find)
                            {
                                paintContainer[i].tarName = "";
                            }
                        }
                    }
                }
                //   Debug.Log(fi.PlayerId + "|" + fi.Data + "\r\n");
            }
        }
        catch (Exception e)
        {
            if (ToastManager.instance)
            {
                ToastManager.instance.AddToast(ToastType.Error, e.Message);
            }
            Debug.LogError(e.Message);
        }
    }