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); } }
//Unity Message Event void Update() { GTime.Update(); FrameHandle.UF_OnUpdate(); FrameHandle.UF_OnSecondUpdate(); MgobeHelper.Update(); }
void OnClick(object[] args) { if (args[0].ToString() == "RoomList") { int idx = int.Parse((string)args[1]); MgobeHelper.JoinRoom(idx, SwitchPanel); } }
void RefreshReadyBtn() { var data = MgobeHelper.GetPlayerById(MgobeHelper.PlayerId); if (data != null) { m_BtnReady.GetComponentInChildren <Text>().text = data.CustomPlayerStatus == 0 ? "准备" : "取消准备"; } }
void OnClickLeave() { var data = MgobeHelper.GetPlayerById(MgobeHelper.PlayerId); if (data.CustomPlayerStatus == 1) { return; } MgobeHelper.LeaveRoom(OnLeaveRoom); }
private void Start() { m_BtnAddEntity.onClick.AddListener(OnClickAddEntity); m_BtnAddBoxEntity.onClick.AddListener(OnClickBoxEntity); m_BtnStop.onClick.AddListener(OnClickStop); //资源加载完毕开始 同步 MgobeHelper.StartFrameSync(); }
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"); } }
// 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); }
void Update() { MgobeHelper.Update(); }
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); }
void OnClickReady() { MgobeHelper.SetReadyToBattle(RefreshReadyBtn); }
void OnClickStop() { MgobeHelper.StopFrameSync(); }