예제 #1
0
        public IEnumerator OnLogined(string account)
        {
            //Debugger.Enable = true;
            Global.OpenId = account;
            Debug.Log(Global.OpenId);
            yield return(StartCoroutine(MgobeHelper.InitSDK()));

            if (Global.IsInRoom())
            {
                if (MgobeHelper.RoomInfo.FrameSyncState == FrameSyncState.Start)
                {
                    //找一个客户端拿数据
                    //拿完直接显示对应数据,开始sim
                    MgobeHelper.SendToClient(null, RecvType.RoomOthers, "ReConnect", () =>
                    {
                    });
                }
                else
                {
                    UIManager.UF_GetInstance().UF_ShowView("UI System", "ui_panelcreation", null);
                }
            }
            else
            {
                UIManager.UF_GetInstance().UF_ShowView("UI System", "ui_panellan", null);
            }
        }
예제 #2
0
        //Unity Message Event
        void Update()
        {
            GTime.Update();
            FrameHandle.UF_OnUpdate();
            FrameHandle.UF_OnSecondUpdate();

            MgobeHelper.Update();
        }
예제 #3
0
 void OnClick(object[] args)
 {
     if (args[0].ToString() == "RoomList")
     {
         int idx = int.Parse((string)args[1]);
         MgobeHelper.JoinRoom(idx, SwitchPanel);
     }
 }
예제 #4
0
    void RefreshReadyBtn()
    {
        var data = MgobeHelper.GetPlayerById(MgobeHelper.PlayerId);

        if (data != null)
        {
            m_BtnReady.GetComponentInChildren <Text>().text = data.CustomPlayerStatus == 0 ? "准备" : "取消准备";
        }
    }
예제 #5
0
    void OnClickLeave()
    {
        var data = MgobeHelper.GetPlayerById(MgobeHelper.PlayerId);

        if (data.CustomPlayerStatus == 1)
        {
            return;
        }
        MgobeHelper.LeaveRoom(OnLeaveRoom);
    }
예제 #6
0
    private void Start()
    {
        m_BtnAddEntity.onClick.AddListener(OnClickAddEntity);
        m_BtnAddBoxEntity.onClick.AddListener(OnClickBoxEntity);
        m_BtnStop.onClick.AddListener(OnClickStop);


        //资源加载完毕开始 同步
        MgobeHelper.StartFrameSync();
    }
예제 #7
0
    public IEnumerator OnLogined(string account)
    {
        //Debugger.Enable = true;
        Global.OpenId = account;
        Debug.Log(Global.OpenId);
        yield return(StartCoroutine(MgobeHelper.InitSDK()));

        if (Global.IsInRoom())
        {
            AllUI.Instance.Show("PanelCreation");
        }
        else
        {
            AllUI.Instance.Show("PanelLan");
        }
    }
예제 #8
0
    // Use this for initialization
    void Start()
    {
        m_BtnCreate.onClick.AddListener(() =>
        {
            MgobeHelper.CreateRoom(SwitchPanel);
        });
        m_BtnRefresh.onClick.AddListener(() =>
        {
            MgobeHelper.RefreshRoomList(RefreshRoomList);
        });
        m_BtnPlayReplay.onClick.AddListener(OnClickPlayReplay);

        MessageSystem.UF_GetInstance().UF_AddListener(DefineEvent.E_UI_OPERA, OnClick);


        MgobeHelper.RefreshRoomList(RefreshRoomList);
    }
예제 #9
0
 void Update()
 {
     MgobeHelper.Update();
 }
예제 #10
0
        private void OnClientMsg(object[] args)
        {
            string playerId = args[0] as string;
            string msg      = args[1] as string;
            var    msgList  = ListCache <string> .Acquire();

            msgList.AddRange(msg.Split('|'));
            var msgType = msgList[0];

            switch (msgType)
            {
            case (ClientMsgType.ReConnect):
                StringBuilder sb = new StringBuilder();
                sb.Append(ClientMsgType.ReConnectRsp);
                sb.Append("|");
                sb.Append(GetTimeStamp());
                sb.Append("|");
                var sim        = SimulationManager.Instance.GetSimulation(Const.CLIENT_SIMULATION_ID);
                var frameDatas = sim.GetBehaviour <ComponentsBackupBehaviour>().GetEntityWorldFrameData();
                var frameIdx   = sim.GetBehaviour <LogicFrameBehaviour>().CurrentFrameIdx;
                sb.Append(frameIdx);
                sb.Append("|");
                var frameData = frameDatas[frameIdx];
                sb.Append(EntityWorldFrameData.Serilize(frameData));
                sb.Append("|");
                var arrKF = MgobeHelper.QueueKeyFrameCollection.ToArray();
                if (arrKF.Length > 0)
                {
                    for (int i = 0; i < arrKF.Length; i++)
                    {
                        if (i > 0)
                        {
                            sb.Append("&");
                        }
                        sb.Append(Encoding.UTF8.GetString(PtKeyFrameCollection.Write(arrKF[i])));
                    }
                }

                var list = new List <string>()
                {
                    playerId
                };
                MgobeHelper.SendToClient(list, RecvType.RoomSome, sb.ToString());
                break;

            case (ClientMsgType.ReConnectRsp):
                var idx       = msgList[1];
                var timestamp = ulong.Parse(msgList[2]);
                var frameStr  = msgList[3];
                var kfStr     = msgList[4];
                var entData   = EntityWorldFrameData.DeSerilize(frameStr);
                var queueKeyFrameCollection = new ConcurrentQueue <PtKeyFrameCollection>();
                if (!string.IsNullOrEmpty(kfStr))
                {
                    var kfStrs = kfStr.Split('&');
                    for (int i = 0; i < kfStrs.Length; i++)
                    {
                        queueKeyFrameCollection.Enqueue(PtKeyFrameCollection.Read(Encoding.UTF8.GetBytes(kfStrs[i])));
                    }
                }

                MgobeHelper.QueueKeyFrameCollection = queueKeyFrameCollection;
                OnAddClient();
                var sim2 = SimulationManager.Instance.GetSimulation(Const.CLIENT_SIMULATION_ID);
                sim2.GetBehaviour <LogicFrameBehaviour>().CurrentFrameIdx = int.Parse(idx);
                sim2.GetEntityWorld().RollBack(entData, null);

                OnAllReady(null);
                SimulationManager.Instance.Start(timestamp);
                break;

            default:
                break;
            }

            ListCache <string> .Release(msgList);
        }
예제 #11
0
 void OnClickReady()
 {
     MgobeHelper.SetReadyToBattle(RefreshReadyBtn);
 }
예제 #12
0
 void OnClickStop()
 {
     MgobeHelper.StopFrameSync();
 }