/// <summary> /// 处理更新房间响应 /// </summary> public void HandleUpdateRoomResponse(string p2Username, int p2TotalCount, int p2WinCount) { //先判断传来的数据 if (!p2Username.Equals("null") && p2TotalCount != -1 && p2WinCount != -1) { //说明有P2的数据 _p2Username = p2Username; _p2TotalCount = p2TotalCount; _p2WinCount = p2WinCount; //更改标志位-剩下交给Update处理 _updateRoomState = UpdateRoomState.HaveP2; } else { //说明没有P2的数据-剩下交给Update处理 _updateRoomState = UpdateRoomState.NoP2; } }
void Update() { #region 创建房间对roomPanel的具体设置 if (_actionState == ActionState.Success) { //设置P1,P2的面板信息 User user = GameFacade.Instance.PlayerManager.currentLoginedUser; Score userScore = GameFacade.Instance.PlayerManager.currentUserScore; //Debug.Log("玩家" + user.Username + "战绩" + userScore.WinCount + "/" + userScore.TotalCount); SetP1Info(user.Username, userScore.TotalCount, userScore.WinCount); ResetP2Info(); //其作为房主-判断开始按钮的交互性-如果不可交互-则设置为可交互 if (startGameBtn.interactable == false) { startGameBtn.interactable = true; } Debug.Log("已完成对Text的设置"); _actionState = ActionState.StandBy; } else if (_actionState == ActionState.Failed) { //打开MsgPanel提示创建房间失败 MessagePanel msgPanel = GameFacade.Instance.UiManager.PushPanel(PanelType.Message) as MessagePanel; msgPanel.ShowTipsMsg("创建房间失败"); _actionState = ActionState.StandBy; } #endregion #region 玩家进入/退出房间对房主的RoomPanel进行更新 if (_updateRoomState == UpdateRoomState.HaveP2) { SetP2Info(_p2Username, _p2TotalCount, _p2WinCount); _updateRoomState = UpdateRoomState.StandBy; } else if (_updateRoomState == UpdateRoomState.NoP2) { ResetP2Info(); //对p2Name变量置空,解决p2加入后,又退出,p1在没有p2的情况下直接开始游戏的bug _p2Username = null; _updateRoomState = UpdateRoomState.StandBy; } #endregion #region 房间面板的关闭 if (_quitRoomState == QuitRoomState.Execute) { GameFacade.Instance.UiManager.PopPanel(); // _quitRoomState = QuitRoomState.StandBy; } #endregion #region 开始游戏控制 if (_startGameState == StartGameState.Execute) { //开始游戏TODO Debug.Log("开始游戏"); //打开GamePanel面板 GameFacade.Instance.UiManager.PushPanel(PanelType.Game); //创建所有角色 GameFacade.Instance.PlayerManager.SpawnAllRoles(); //切换相机状态 GameFacade.Instance.CameraManager.SwitchToFollowState(GameFacade.Instance.PlayerManager.CurrentControllRoleGo.transform); _startGameState = StartGameState.StandBy; } else if (_startGameState == StartGameState.NoExecute) { //不能开始游戏 Debug.Log("开始游戏失败"); MessagePanel msgPanel = GameFacade.Instance.UiManager.PushPanel(PanelType.Message) as MessagePanel; msgPanel.ShowTipsMsg("无法开始游戏"); _startGameState = StartGameState.StandBy; } #endregion }