private void OnGUI() { GUI.color = Color.white; GUI.skin.label.fontSize = 40; GUI.skin.button.fontSize = 40; GUI.skin.textField.fontSize = 40; GUILayout.Label("State: " + PhotonNetwork.NetworkClientState); switch (PhotonNetwork.NetworkClientState) { case ClientState.PeerCreated: if (GUILayout.Button("Connect")) { connectionModel.ConnectToServer(); } break; case ClientState.ConnectedToMasterServer: if (GUILayout.Button("Join Lobby")) { connectionModel.JoinDefaultLobby(); } break; case ClientState.JoinedLobby: GUILayout.Label("Lobby: " + PhotonNetwork.CurrentLobby.Name); if (GUILayout.Button("Create Random")) { connectionModel.CreateRandom(); } if (GUILayout.Button("Join Random Random")) { connectionModel.JoinRandomRoom(); } foreach (var roomInfo in connectionModel.GetAllRooms()) { GUILayout.BeginHorizontal(); GUILayout.Label("Room: " + roomInfo.Name + "(" + roomInfo.PlayerCount + "/" + roomInfo.MaxPlayers + ")"); if (roomInfo.IsOpen) { if (GUILayout.Button("Join")) { connectionModel.JoinRoom(roomInfo.Name); } } GUILayout.EndHorizontal(); } break; case ClientState.Joined: var room = PhotonNetwork.CurrentRoom; GUILayout.Label(room.Name); GUILayout.Label("Players: " + room.PlayerCount); GUILayout.Label("-----"); foreach (var pair in room.Players) { string desc = pair.Key + ": " + pair.Value.NickName + (pair.Value.IsMasterClient ? " (M)" : ""); string additional = " " + (Team)pair.Value.GetTeam() + " " + pair.Value.GetRole(); GUILayout.Label(desc + additional); } GUILayout.Label("-----"); GUILayout.Label("Settings:"); GUILayout.BeginHorizontal(); GUILayout.Label("Name:"); var newNickname = GUILayout.TextField(nickname); if (newNickname != nickname) { nickname = newNickname; connectionModel.RenameLocalPlayerTo(nickname); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Team:"); if (GUILayout.Button("Red")) { connectionModel.ChangeLocalPlayerTeamTo(Team.Red); } if (GUILayout.Button("Blue")) { connectionModel.ChangeLocalPlayerTeamTo(Team.Blue); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Role:"); if (GUILayout.Button("Pilot")) { connectionModel.ChangeLocalPlayerRoleTo(PlayerRole.Pilot); } if (GUILayout.Button("Gunner")) { connectionModel.ChangeLocalPlayerRoleTo(PlayerRole.Gunner); } GUILayout.EndHorizontal(); if (PhotonNetwork.IsMasterClient) { if (GUILayout.Button("Play!")) { connectionModel.StartGame(); } if (connectionModel.IsRoomWellDistributed(out string failReason)) { GUI.color = Color.green; GUILayout.Label("READY!"); } else { GUI.color = Color.yellow; GUILayout.Label("WARN: " + failReason); } } break; } }