/// <summary> /// 处理登录请求的来自服务器端的响应 /// </summary> /// <param name="data"></param> public override void OnResponse(string data) { //【测试成功-用netty框架后,不再因为新开线程不能调用Unity主线程中的内容而写标志位使程序复杂】 //RoomListPanel roomListPanel = GameFacade.Instance.UiManager.PushPanel(PanelType.RoomList) as RoomListPanel; //解析到来自服务器的响应【按#拆分】 string[] info = data.Split('#'); ReturnType returnType = (ReturnType)(int.Parse(info[0]));//先获得是登录成功还是失败 if (returnType == ReturnType.Failed) { //登录失败-剩余交给LoginPanel的HandleLoginResponse处理 _loginPanel.HandleLoginResponse(false); } else if (returnType == ReturnType.Successful) { //登录成功-剩余交给LoginPanel的HandleLoginResponse处理 _loginPanel.HandleLoginResponse(true); //解析战绩数据-给PlayerManager的User对象和Score对象 string[] playerInfo = data.Split('#');//直接从下标1开始,0是ReturnCode,已经用过了 User user = new User(); Score score = new Score(); user.Id = int.Parse(playerInfo[1]); //UID user.Username = playerInfo[2]; //用户名 score.TotalCount = int.Parse(playerInfo[3]); //用户总场数 score.WinCount = int.Parse(playerInfo[4]); //用户胜利数 //赋值给PlayerManager GameFacade.Instance.PlayerManager.currentLoginedUser = user; GameFacade.Instance.PlayerManager.currentUserScore = score; } }