/* * Renders the lobby room and player create menu */ void OnGUI() { // lobby if (gameState == GameState.InLobby) { GUILayout.BeginArea(new Rect(Screen.width / 2 - 150, Screen.height / 2 - 150, 300, 300)); playerName = GUILayout.TextField(playerName); roomName = GUILayout.TextField(roomName); if (GUILayout.Button("Create")) { PhotonNetwork.JoinOrCreateRoom(roomName, null, null); } // Display a list of available rooms on the server foreach (RoomInfo game in PhotonNetwork.GetRoomList()) { if (GUILayout.Button(game.name + " " + game.playerCount + "/" + game.maxPlayers)) { PhotonNetwork.JoinOrCreateRoom(game.name, null, null); } } GUILayout.EndArea(); } // room if (gameState == GameState.InRoom) { GUILayout.BeginArea(new Rect(Screen.width / 2 - 150, Screen.height / 2 - 150, 300, 300)); GUILayout.Box("Your current score: " + PhotonNetwork.player.GetScore()); // Class selection GUILayout.Label("Choose your class"); if (GUILayout.Button("SWAT")) { spawnPlayer(SWAT); } if (GUILayout.Button("Assault")) { spawnPlayer(Assault); } GUILayout.Label(""); if (GUILayout.Button("Quit room")) { PhotonNetwork.Disconnect(); SceneManager.LoadScene(0); } GUILayout.EndArea(); } if (gameState == GameState.Die) { GUILayout.BeginArea(new Rect(Screen.width / 2 - 150, Screen.height / 2 - 150, 300, 300)); GUILayout.Box("You Died"); if (GUILayout.Button("Back to room")) { PhotonNetwork.Destroy(ragDoll); OnJoinedRoom(); } GUILayout.EndArea(); } }
private void OnGUI() { if (!PhotonNetwork.connected) { if (PhotonNetwork.connectionState == ConnectionState.Connecting) { GUILayout.Label("Connecting " + PhotonNetwork.PhotonServerSettings.ServerAddress); GUILayout.Label(Time.time.ToString()); } else { GUILayout.Label("Not connected. Check console output."); } if (this.connectFailed) { GUILayout.Label("Connection failed. Check setup and use Setup Wizard to fix configuration."); GUILayout.Label(string.Format("Server: {0}:{1}", new object[] { PhotonNetwork.PhotonServerSettings.ServerAddress, PhotonNetwork.PhotonServerSettings.ServerPort })); GUILayout.Label("AppId: " + PhotonNetwork.PhotonServerSettings.AppID); if (GUILayout.Button("Try Again", GUILayout.Width(100))) { this.connectFailed = false; PhotonNetwork.ConnectUsingSettings("1.0"); } } return; } GUI.skin.box.fontStyle = FontStyle.Bold; GUI.Box(new Rect((Screen.width - 400) / 2, (Screen.height - 350) / 2, 400, 300), "Join or Create a Room"); GUILayout.BeginArea(new Rect((Screen.width - 400) / 2, (Screen.height - 350) / 2, 400, 300)); GUILayout.Space(25); // Player name GUILayout.BeginHorizontal(); GUILayout.Label("Player name:", GUILayout.Width(100)); PhotonNetwork.playerName = GUILayout.TextField(PhotonNetwork.playerName); GUILayout.Space(105); if (GUI.changed) { // Save name PlayerPrefs.SetString("playerName", PhotonNetwork.playerName); } GUILayout.EndHorizontal(); GUILayout.Space(15); // Join room by title GUILayout.BeginHorizontal(); GUILayout.Label("Roomname:", GUILayout.Width(100)); this.roomName = GUILayout.TextField(this.roomName); if (GUILayout.Button("Create Room", GUILayout.Width(100))) { PhotonNetwork.CreateRoom(this.roomName, true, true, 10); } GUILayout.EndHorizontal(); // Create a room (fails if exist!) GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); //this.roomName = GUILayout.TextField(this.roomName); if (GUILayout.Button("Join Room", GUILayout.Width(100))) { PhotonNetwork.JoinRoom(this.roomName); } GUILayout.EndHorizontal(); GUILayout.Space(15); // Join random room GUILayout.BeginHorizontal(); GUILayout.Label(PhotonNetwork.countOfPlayers + " users are online in " + PhotonNetwork.countOfRooms + " rooms."); GUILayout.FlexibleSpace(); if (GUILayout.Button("Join Random", GUILayout.Width(100))) { PhotonNetwork.JoinRandomRoom(); } GUILayout.EndHorizontal(); GUILayout.Space(15); if (PhotonNetwork.GetRoomList().Length == 0) { GUILayout.Label("Currently no games are available."); GUILayout.Label("Rooms will be listed here, when they become available."); } else { GUILayout.Label(PhotonNetwork.GetRoomList() + " currently available. Join either:"); // Room listing: simply call GetRoomList: no need to fetch/poll whatever! this.scrollPos = GUILayout.BeginScrollView(this.scrollPos); foreach (RoomInfo roomInfo in PhotonNetwork.GetRoomList()) { GUILayout.BeginHorizontal(); GUILayout.Label(roomInfo.name + " " + roomInfo.playerCount + "/" + roomInfo.maxPlayers); if (GUILayout.Button("Join")) { PhotonNetwork.JoinRoom(roomInfo.name); } GUILayout.EndHorizontal(); } GUILayout.EndScrollView(); } GUILayout.EndArea(); }
void OnReceivedRoomListUpdate() { roomsList = PhotonNetwork.GetRoomList(); }
public void FriendList() { GUI.enabled = true; var defaultColor = GUI.color; GUILayout.Label("Friends"); using (new GUILayout.HorizontalScope()) { GUILayout.Label("Enter Friend Name: "); friendName = GUILayout.TextField(friendName); if (GUILayout.Button("Add", GUILayout.Width(mainWindowRect.width * 0.2f))) { NetworkManager.main.friends.Add(friendName); friendName = ""; PhotonNetwork.FindFriends(NetworkManager.main.friends.ToArray()); } } using (var scroll = new GUILayout.ScrollViewScope(scrollPos)) { scrollPos = scroll.scrollPosition; showSteam = GUILayout.Toggle(showSteam, "Steam Friends", "Button"); if (showSteam) { foreach (FriendInfo friend in NetworkManager.main.steamFriends) { using (new GUILayout.HorizontalScope("Box")) { GUILayout.Label(friend.UserId, GUILayout.Width(mainWindowRect.width * 0.3f)); GUI.color = friend.IsOnline ? Color.green : Color.red; string labelText = "OFFLINE"; if (friend.IsInRoom) { labelText = "IN ROOM"; } else if (friend.IsOnline) { labelText = "ONLINE"; } GUILayout.Label(labelText, GUILayout.Width(mainWindowRect.width * 0.3f)); GUI.color = defaultColor; GUI.enabled = friend.IsInRoom; if (GUILayout.Button("Join", GUILayout.Width(mainWindowRect.width * 0.3f))) { NetworkManager.main.JoinGame(friend.Room); } GUI.enabled = true; } } } showNonSteam = GUILayout.Toggle(showNonSteam, "Non Steam Friends", "Button"); if (showNonSteam) { foreach (FriendInfo friend in NetworkManager.main.nonSteamFriends) { using (new GUILayout.HorizontalScope("Box")) { GUILayout.Label(friend.UserId, GUILayout.Width(mainWindowRect.width * 0.3f)); GUI.color = friend.IsOnline ? Color.green : Color.red; string labelText = "OFFLINE"; if (friend.IsInRoom) { labelText = "IN ROOM"; } else if (friend.IsOnline) { labelText = "ONLINE"; } GUILayout.Label(labelText, GUILayout.Width(mainWindowRect.width * 0.3f)); GUI.color = defaultColor; bool roomHasSlots = false; if (friend.IsInRoom) { foreach (RoomInfo room in PhotonNetwork.GetRoomList()) { if (room.Name == friend.Room) { roomHasSlots = room.IsOpen; } } } GUI.enabled = friend.IsInRoom && roomHasSlots; if (GUILayout.Button("Join", GUILayout.Width(mainWindowRect.width * 0.15f))) { NetworkManager.main.JoinGame(friend.Room); } GUI.enabled = true; if (GUILayout.Button("Unfriend", GUILayout.Width(mainWindowRect.width * 0.15f))) { NetworkManager.main.friends.Remove(friend.UserId); PhotonNetwork.FindFriends(NetworkManager.main.friends.ToArray()); } } } } } }
private void showServerList() { if (PhotonNetwork.GetRoomList().Length != 0) { int index = 0; if (this.filter == string.Empty) { for (index = 0; index < 10; index++) { int num2 = (10 * (this.currentPage - 1)) + index; if (num2 < PhotonNetwork.GetRoomList().Length) { this.items[index].SetActive(true); this.items[index].GetComponentInChildren <UILabel>().text = this.getServerDataString(PhotonNetwork.GetRoomList()[num2]); this.items[index].GetComponentInChildren <BTN_Connect_To_Server_On_List>().roomName = PhotonNetwork.GetRoomList()[num2].name; } else { this.items[index].SetActive(false); } } } else { for (index = 0; index < 10; index++) { int num3 = (10 * (this.currentPage - 1)) + index; if (num3 < this.filterRoom.Count) { RoomInfo room = (RoomInfo)this.filterRoom[num3]; this.items[index].SetActive(true); this.items[index].GetComponentInChildren <UILabel>().text = this.getServerDataString(room); this.items[index].GetComponentInChildren <BTN_Connect_To_Server_On_List>().roomName = room.name; } else { this.items[index].SetActive(false); } } } GameObject.Find("LabelServerListPage").GetComponent <UILabel>().text = this.currentPage + "/" + this.totalPage; } else { for (int i = 0; i < this.items.Length; i++) { this.items[i].SetActive(false); } GameObject.Find("LabelServerListPage").GetComponent <UILabel>().text = this.currentPage + "/" + this.totalPage; } }
void OnReceivedRoomListUpdate() { Debug.Log("Room was created"); roomsList = PhotonNetwork.GetRoomList(); }
public void OnGUI() { if (this.Skin != null) { GUI.skin = this.Skin; } if (!PhotonNetwork.connected) { if (PhotonNetwork.connecting) { GUILayout.Label("Connecting to: " + PhotonNetwork.ServerAddress); } else { GUILayout.Label("Not connected. Check console output. Detailed connection state: " + PhotonNetwork.connectionStateDetailed + " Server: " + PhotonNetwork.ServerAddress); } if (this.connectFailed) { GUILayout.Label("Connection failed. Check setup and use Setup Wizard to fix configuration."); GUILayout.Label(String.Format("Server: {0}", new object[] { PhotonNetwork.ServerAddress })); GUILayout.Label("AppId: " + PhotonNetwork.PhotonServerSettings.AppID.Substring(0, 8) + "****"); // only show/log first 8 characters. never log the full AppId. if (GUILayout.Button("Try Again", GUILayout.Width(100))) { this.connectFailed = false; PhotonNetwork.ConnectUsingSettings("0.9"); } } return; } Rect content = new Rect((Screen.width - this.WidthAndHeight.x) / 2, (Screen.height - this.WidthAndHeight.y) / 2, this.WidthAndHeight.x, this.WidthAndHeight.y); GUI.Box(content, "Join or Create Room"); GUILayout.BeginArea(content); GUILayout.Space(40); // Player name GUILayout.BeginHorizontal(); GUILayout.Label("Player name:", GUILayout.Width(150)); PhotonNetwork.playerName = GUILayout.TextField(PhotonNetwork.playerName); GUILayout.Space(158); if (GUI.changed) { // Save name PlayerPrefs.SetString("playerName", PhotonNetwork.playerName); } GUILayout.EndHorizontal(); GUILayout.Space(15); // Join room by title GUILayout.BeginHorizontal(); GUILayout.Label("Roomname:", GUILayout.Width(150)); this.roomName = GUILayout.TextField(this.roomName); if (GUILayout.Button("Create Room", GUILayout.Width(150))) { PhotonNetwork.CreateRoom(this.roomName, new RoomOptions() { maxPlayers = 10 }, null); } GUILayout.EndHorizontal(); // Create a room (fails if exist!) GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); //this.roomName = GUILayout.TextField(this.roomName); if (GUILayout.Button("Join Room", GUILayout.Width(150))) { PhotonNetwork.JoinRoom(this.roomName); } GUILayout.EndHorizontal(); if (!string.IsNullOrEmpty(ErrorDialog)) { GUILayout.Label(ErrorDialog); if (this.timeToClearDialog < Time.time) { this.timeToClearDialog = 0; ErrorDialog = ""; } } GUILayout.Space(15); // Join random room GUILayout.BeginHorizontal(); GUILayout.Label(PhotonNetwork.countOfPlayers + " users are online in " + PhotonNetwork.countOfRooms + " rooms."); GUILayout.FlexibleSpace(); if (GUILayout.Button("Join Random", GUILayout.Width(150))) { PhotonNetwork.JoinRandomRoom(); } GUILayout.EndHorizontal(); GUILayout.Space(15); if (PhotonNetwork.GetRoomList().Length == 0) { GUILayout.Label("Currently no games are available."); GUILayout.Label("Rooms will be listed here, when they become available."); } else { GUILayout.Label(PhotonNetwork.GetRoomList().Length + " rooms available:"); // Room listing: simply call GetRoomList: no need to fetch/poll whatever! this.scrollPos = GUILayout.BeginScrollView(this.scrollPos); foreach (RoomInfo roomInfo in PhotonNetwork.GetRoomList()) { GUILayout.BeginHorizontal(); GUILayout.Label(roomInfo.name + " " + roomInfo.playerCount + "/" + roomInfo.maxPlayers); if (GUILayout.Button("Join", GUILayout.Width(150))) { PhotonNetwork.JoinRoom(roomInfo.name); } GUILayout.EndHorizontal(); } GUILayout.EndScrollView(); } GUILayout.EndArea(); }
void OnReceivedRoomListUpdate() { Debug.Log("We received a room list update, total rooms now: " + PhotonNetwork.GetRoomList().Length); }
void GUI_Connected_Lobby() { GUILayout.BeginArea(new Rect((Screen.width - 400) / 2, (Screen.height - 300) / 2, 400, 300)); GUILayout.Label("Main Menu"); // Player name GUILayout.BeginHorizontal(); GUILayout.Label("Player name:", GUILayout.Width(150)); PhotonNetwork.playerName = GUILayout.TextField(PhotonNetwork.playerName); if (GUI.changed) { PlayerPrefs.SetString("playerName" + Application.platform, PhotonNetwork.playerName); } GUILayout.EndHorizontal(); GUILayout.Space(15); // Join room by title GUILayout.BeginHorizontal(); GUILayout.Label("JOIN ROOM:", GUILayout.Width(150)); this.roomName = GUILayout.TextField(this.roomName); if (GUILayout.Button("GO")) { PhotonNetwork.JoinRoom(this.roomName); } GUILayout.EndHorizontal(); // Create a room (fails if already exists!) GUILayout.BeginHorizontal(); GUILayout.Label("CREATE ROOM:", GUILayout.Width(150)); this.roomName = GUILayout.TextField(this.roomName); if (GUILayout.Button("GO")) { PhotonNetwork.CreateRoom(this.roomName, true, true, 10); } GUILayout.EndHorizontal(); // Join random room (there must be at least 1 room) GUILayout.BeginHorizontal(); GUILayout.Label("JOIN RANDOM ROOM:", GUILayout.Width(150)); if (PhotonNetwork.GetRoomList().Length == 0) { GUILayout.Label("..no games available..."); } else { if (GUILayout.Button("GO")) { PhotonNetwork.JoinRandomRoom(); } } GUILayout.EndHorizontal(); GUILayout.Space(30); //Show a list of all current rooms GUILayout.Label("ROOM LISTING:"); if (PhotonNetwork.GetRoomList().Length == 0) { GUILayout.Label("..no games available.."); } else { // Room listing: simply call GetRoomList: no need to fetch/poll whatever! this.scrollPos = GUILayout.BeginScrollView(this.scrollPos); foreach (RoomInfo game in PhotonNetwork.GetRoomList()) { GUILayout.BeginHorizontal(); GUILayout.Label(game.name + " " + game.playerCount + "/" + game.maxPlayers); if (GUILayout.Button("JOIN")) { PhotonNetwork.JoinRoom(game.name); } GUILayout.EndHorizontal(); } GUILayout.EndScrollView(); } GUILayout.EndArea(); }
void getRoomsNumber() { roomsNumber.Value = PhotonNetwork.GetRoomList().Length; }
// ROOMLIST void OnReceivedRoomList() { Debug.Log("We received a new room list, total rooms: " + PhotonNetwork.GetRoomList().Length); }
void RefreshRoomList() { if (roomPrefabs.Count > 0) { for (int i = 0; i < roomPrefabs.Count; i++) { Destroy(roomPrefabs[i]); } roomPrefabs.Clear(); } for (int i = 0; i < PhotonNetwork.GetRoomList().Length; i++) { GameObject g = Instantiate(roomPrefab); g.transform.SetParent(roomPrefab.transform.parent); g.GetComponent <RectTransform>().localScale = roomPrefab.GetComponent <RectTransform>().localScale; g.GetComponent <RectTransform>().localPosition = new Vector3(roomPrefab.GetComponent <RectTransform>().localPosition.x, roomPrefab.GetComponent <RectTransform>().localPosition.y - (i * 50), roomPrefab.GetComponent <RectTransform>().localPosition.z); g.transform.Find("roomName").GetComponent <Text>().text = PhotonNetwork.GetRoomList()[i].Name; g.transform.Find("roomCount").GetComponent <Text>().text = PhotonNetwork.GetRoomList()[i].PlayerCount + "/" + PhotonNetwork.GetRoomList()[i].MaxPlayers; g.transform.Find("JoinButton").GetComponent <Button>().onClick.AddListener(() => { JoinRoom(g.transform.Find("roomName").GetComponent <Text>().text); }); g.SetActive(true); roomPrefabs.Add(g); } }
void OnReceivedRoomListUpdate() //this function is automatically called when you get new rooms (e.g. when a room is created or removed { all_rooms = PhotonNetwork.GetRoomList(); }
// Update is called once per frame void Update() { var _roomlist = PhotonNetwork.GetRoomList(); // Debug.Log(_roomlist.Length); // lab.text = PhotonNetwork.connectionStateDetailed.ToString(); }
//Updating the room void UpdateRoom() { roomsList = PhotonNetwork.GetRoomList(); }
void OnGUI() { if (!PhotonNetwork.connected) { ShowConnectingGUI(); return; //Wait for a connection } if (PhotonNetwork.room != null) { return; //Only when we're not in a Room } GUILayout.BeginArea(new Rect((Screen.width - 400) / 2, (Screen.height - 300) / 2, 400, 300)); GUILayout.Label("Main Menu"); //Player name GUILayout.BeginHorizontal(); GUILayout.Label("Player name:", GUILayout.Width(150)); PhotonNetwork.playerName = GUILayout.TextField(PhotonNetwork.playerName); if (GUI.changed)//Save name { PlayerPrefs.SetString("playerName", PhotonNetwork.playerName); } GUILayout.EndHorizontal(); GUILayout.Space(15); //Join room by title GUILayout.BeginHorizontal(); GUILayout.Label("JOIN ROOM:", GUILayout.Width(150)); roomName = GUILayout.TextField(roomName); if (GUILayout.Button("GO")) { PhotonNetwork.JoinRoom(roomName); } GUILayout.EndHorizontal(); //Create a room (fails if exist!) GUILayout.BeginHorizontal(); GUILayout.Label("CREATE ROOM:", GUILayout.Width(150)); roomName = GUILayout.TextField(roomName); if (GUILayout.Button("GO")) { // using null as TypedLobby parameter will also use the default lobby PhotonNetwork.CreateRoom(roomName, new RoomOptions() { maxPlayers = 10 }, TypedLobby.Default); } GUILayout.EndHorizontal(); //Join random room GUILayout.BeginHorizontal(); GUILayout.Label("JOIN RANDOM ROOM:", GUILayout.Width(150)); if (PhotonNetwork.GetRoomList().Length == 0) { GUILayout.Label("..no games available..."); } else { if (GUILayout.Button("GO")) { PhotonNetwork.JoinRandomRoom(); } } GUILayout.EndHorizontal(); GUILayout.Space(30); GUILayout.Label("ROOM LISTING:"); if (PhotonNetwork.GetRoomList().Length == 0) { GUILayout.Label("..no games available.."); } else { //Room listing: simply call GetRoomList: no need to fetch/poll whatever! scrollPos = GUILayout.BeginScrollView(scrollPos); foreach (RoomInfo game in PhotonNetwork.GetRoomList()) { GUILayout.BeginHorizontal(); GUILayout.Label(game.name + " " + game.playerCount + "/" + game.maxPlayers); if (GUILayout.Button("JOIN")) { PhotonNetwork.JoinRoom(game.name); } GUILayout.EndHorizontal(); } GUILayout.EndScrollView(); } GUILayout.EndArea(); }
/// <summary> /// Score board window /// </summary> /// <param name="id">Identifier.</param> private void DrawWindow(int id) { GUILayout.Space(1); // Show connection state if (!PhotonNetwork.connected) { if (PhotonNetwork.connectionState == ConnectionState.Connecting) { GUILayout.Label("Connecting..."); } else if (PhotonNetwork.connectionState == ConnectionState.Disconnected || this.connectFailed) { GUILayout.Label("Not connected. Check console output."); if (GUILayout.Button("Re-connect")) { this.connectFailed = false; PhotonNetwork.ConnectUsingSettings("1.0"); } } return; } // Main Window switch (_State) { #region Top case MenuState.Top: GUILayout.Label("You can play game from \"room list\" or \"host game!\""); GUILayout.Space(5); GUILayout.Label("Player Name"); PhotonNetwork.playerName = GUILayout.TextField(PhotonNetwork.playerName, 25); GUILayout.Space(5); if (GUILayout.Button("Room List")) { _State = MenuState.RoomList; } GUILayout.Space(5); if (GUILayout.Button("Host Game")) { _State = MenuState.HostGame; } GUILayout.Space(5); if (GUILayout.Button(" Settings ")) { _State = MenuState.Settings; } break; #endregion #region RoomList case MenuState.RoomList: GUILayout.Label("Room List"); GUILayout.Space(5); if (PhotonNetwork.GetRoomList().Length == 0) { GUILayout.BeginHorizontal("box"); GUILayout.Label("There is no room available..."); GUILayout.EndHorizontal(); } foreach (RoomInfo r in PhotonNetwork.GetRoomList()) { string[] s = _manager.GetRoomInfo(r); GUILayout.BeginHorizontal("box"); { GUILayout.Label("RoomName: " + s[0]); GUILayout.Label("Players: " + s[1] + "/" + s[2]); GUILayout.Label("Map: " + Maps[int.Parse(s[3])].LevelName); if (GUILayout.Button("Join")) { if (String.IsNullOrEmpty(PhotonNetwork.playerName)) { PhotonNetwork.playerName = PhotonNetwork.playerName = "Guest" + Random.Range(1, 9999); } PhotonNetwork.JoinRoom(s[0]); } } GUILayout.EndHorizontal(); } GUILayout.Space(10); if (GUILayout.Button("Return to menu")) { _State = MenuState.Top; } break; #endregion #region HostGame case MenuState.HostGame: GUILayout.Label("Host Game"); GUILayout.Space(5); GUILayout.BeginVertical("box"); // Name input GUILayout.Label("Room Name"); roomInput = GUILayout.TextField(roomInput, 25); GUILayout.Space(5); // Map selection GUILayout.Label("Current Map: " + selected.LevelName); GUILayout.BeginScrollView(scrollPos); { GUILayout.BeginVertical("box"); foreach (Map m in Maps) { if (GUILayout.Button(m.LevelName)) { selected = m; } } GUILayout.EndVertical(); } GUILayout.EndScrollView(); GUILayout.EndVertical(); if (GUILayout.Button("Create a New Game")) { if (String.IsNullOrEmpty(roomInput)) { roomInput = "Room" + Random.Range(1, 9999); } if (String.IsNullOrEmpty(PhotonNetwork.playerName)) { PhotonNetwork.playerName = PhotonNetwork.playerName = "Guest" + Random.Range(1, 9999); } _manager.CreateRoom(roomInput, selected._Index, selected.Capacity); } GUILayout.Space(10); if (GUILayout.Button("Return to menu")) { _State = MenuState.Top; } break; #endregion #region Settings case MenuState.Settings: GUILayout.Label("Settings"); GUILayout.Space(5); GUILayout.Label("Quality"); string[] names = QualitySettings.names; GUILayout.BeginHorizontal("box"); int i = 0; while (i < names.Length) { if (GUILayout.Button(names[i])) { QualitySettings.SetQualityLevel(i, true); } i++; } GUILayout.EndHorizontal(); GUILayout.Space(10); if (GUILayout.Button("Return to menu")) { _State = MenuState.Top; } break; #endregion } }
// De list met Rooms uit de lobby wordt opgehaald private void getRoomList() { rooms = PhotonNetwork.GetRoomList(); }
private void UpdateRoomList() { RoomInfo[] roomInfoAry = PhotonNetwork.GetRoomList(); UiRoomList.SetRoomListInfo(roomInfoAry); }
void OnReceivedRoomListUpdate() { rooms = PhotonNetwork.GetRoomList(); ChangeRoomScroll(); randButton.GetComponent <Button>().interactable = openRoom; }
public void MainMenu() { showButton = GUILayout.Toggle(showButton, "Show Corner Button"); Color defaultColor = GUI.color; GUILayout.Label(connectionMessage); string nameTextLabel = $"Player Name: {PhotonNetwork.playerName}"; bool playerNameValid = !string.IsNullOrEmpty(PhotonNetwork.playerName); if (!playerNameValid) { GUI.color = Color.red; nameTextLabel = "Please set a player name!"; } GUILayout.Label(nameTextLabel); GUI.color = defaultColor; GUI.enabled = !PhotonNetwork.inRoom; using (new GUILayout.HorizontalScope()) { playerName = GUILayout.TextField(playerName); if (GUILayout.Button("Apply", GUILayout.Width(mainWindowRect.width / 5))) { if (PhotonNetwork.connected) { PhotonNetwork.Disconnect(); } PhotonNetwork.playerName = playerName; PhotonNetwork.AuthValues.UserId = playerName; StartCoroutine(NetworkManager.main.ReconnectOnceDisconnected()); } } GUI.enabled = playerNameValid; if (!PhotonNetwork.inRoom) { if (GameManager.instance.IsGameplayScene() && PhotonNetwork.connected) { GUI.color = Color.green; if (GUILayout.Button("Create Room")) { NetworkManager.main.CreateGame(); } } else { GUI.color = Color.red; GUI.enabled = false; string text = "You must be in-game to create a room!"; if (!PhotonNetwork.connected) { text = "You must be connected to the lobby to create a room!"; } GUILayout.Button(text); GUI.enabled = true; } } else { GUI.color = Color.red; if (GUILayout.Button("Leave Room")) { PhotonNetwork.LeaveRoom(); } } GUI.color = defaultColor; if (PhotonNetwork.inRoom) { if (PhotonNetwork.isMasterClient) { GUILayout.Label("You are the host"); bool val = (bool)PhotonNetwork.room.CustomProperties["IsPublic"]; if (GUILayout.Button(val ? "Make Room Private" : "Make Room Public")) { var hash = new ExitGames.Client.Photon.Hashtable() { { "IsPublic", !val } }; PhotonNetwork.room.SetCustomProperties(hash); } } else { GUILayout.Label($"{PhotonNetwork.masterClient.NickName} is the host"); } if (NetworkManager.main.localPlayer) { if (NetworkManager.main.localPlayer.isSceneHost) { GUILayout.Label("You are the scene host"); } else { GUILayout.Label("Someone else is the scene host"); } } } GUILayout.Label("Room List"); using (var scroll = new GUILayout.ScrollViewScope(scrollPos)) { scrollPos = scroll.scrollPosition; foreach (RoomInfo info in PhotonNetwork.GetRoomList()) { if (!(bool)info.CustomProperties["IsPublic"]) { continue; } using (new GUILayout.HorizontalScope("Box", GUILayout.Width(mainWindowRect.width * 0.9f))) { GUILayout.Label((string)info.CustomProperties["Name"], GUILayout.Width(mainWindowRect.width * 0.7f)); if (GameManager.instance.IsMenuScene()) { if (GUILayout.Button("Join", GUILayout.Width(mainWindowRect.width * 0.2f))) { NetworkManager.main.JoinGame(info.Name); } } else { GUI.enabled = false; GUILayout.Button("Join", GUILayout.Width(mainWindowRect.width * 0.2f)); } } GUILayout.Space(mainWindowRect.height * 0.04f); } } GUI.enabled = true; }
public void ReceiveData() { var roomList = PhotonNetwork.GetRoomList(); _roomList.OnNext(roomList.Select(room => new RoomData(room))); }
// // void Start () // { // InvokeRepeating ("updateRooms", 0f, 1.25f); // } void updateRooms() { //clear everything in the room list before // foreach (Transform child in RoomsParent) { // Destroy (child.gameObject); // } //update room button size from grid layout so it fits to dynamic parent size GridLayoutGroup glg = RoomsParent.GetComponent <GridLayoutGroup> (); glg.cellSize = new Vector2(_rectTransform.rect.width - 60f, glg.cellSize.y); //get room list, instantiate & fill the list if (PhotonNetwork.connected) { List <RoomInfo> rooms = PhotonNetwork.GetRoomList().ToList(); List <UIRoomListElement> currentRooms = RoomsParent.GetComponentsInChildren <UIRoomListElement> ().ToList(); bool deleted = false; //delete all rooms with empty roominfo foreach (var r in currentRooms.Where(x => x.RoomInfo == null)) { Destroy(r.gameObject); deleted = true; } if (deleted) { return; } //delete all rooms that doesn't exist foreach (var n in currentRooms.Select(x => x.RoomInfo.Name).Except(rooms.Select(x => x.Name))) { Destroy(currentRooms.First(x => x.RoomInfo.Name == n).gameObject); deleted = true; } if (deleted) { return; } foreach (var room in rooms) { //check room type ROOM_TYPE rt = (ROOM_TYPE)room.customProperties [RoomLevelHelper.CUSTOM_ROOM_PROPERTY_ROOM_TYPE]; if (rt != _roomType) { continue; } GameObject instance; if (currentRooms.Select(x => x.RoomInfo.Name).Contains(room.Name)) { //if already exsists, don't instantiate instance = currentRooms.First(x => x.RoomInfo.Name == room.Name).gameObject; } else { instance = Instantiate(_roomPrefab); } // GameObject instance = Instantiate (_roomPrefab); instance.transform.SetParent(RoomsParent); UIRoomListElement roomElement = instance.GetComponent <UIRoomListElement> (); roomElement.ButtonText.text = "(" + room.playerCount + "/" + room.maxPlayers + ") " + room.name; roomElement.SetRoomInfo(room); roomElement.UIRL = this; Button btn = instance.GetComponent <Button> (); //disable button is room is full if (room.playerCount >= room.maxPlayers) { btn.interactable = false; } } _logText.text = "Room list updated"; } else { Debug.Log("Not connected to Photon Server"); } }
void Window(int id) { if (menu == Menu.Options) { if (gui.Button("<<Back")) { menu = Menu.MainMenu; } _Loader.EnableHighQuality = gui.Toggle(_Loader.EnableHighQuality, "High Quality"); _Loader.EnableBlood = gui.Toggle(_Loader.EnableBlood, "Enable Blood"); gui.BeginHorizontal(); gui.Label("MaxPlayers:" + (int)maxPlayers, gui.ExpandWidth(false)); maxPlayers = gui.HorizontalSlider(maxPlayers, 1, 8); gui.EndHorizontal(); gui.BeginHorizontal(); gui.Label("SensivityX", gui.ExpandWidth(false)); _Loader.SensivityX = gui.HorizontalSlider(_Loader.SensivityX, .1f, 2); gui.EndHorizontal(); gui.BeginHorizontal(); gui.Label("SensivityY", gui.ExpandWidth(false)); _Loader.SensivityY = gui.HorizontalSlider(_Loader.SensivityY, .1f, 2); gui.EndHorizontal(); gui.BeginHorizontal(); gui.Label("Sound Vol", gui.ExpandWidth(false)); _Loader.SoundVolume = gui.HorizontalSlider(_Loader.SoundVolume, 0, 1); gui.EndHorizontal(); if (gui.Button("Reset Settings")) { PlayerPrefs.DeleteAll(); } AudioListener.volume = _Loader.SoundVolume; } else if (menu == Menu.SelectMap) { if (gui.Button("<<Back")) { menu = Menu.MainMenu; } scrollPosition = gui.BeginScrollView(scrollPosition); foreach (var map in _Loader.maps) { int p = GetLevelLoad(map); if (gui.Button(map + (p < 100 ? (" " + p + "%") : ""))) { if (p == 100) { Host(map); } else { print("Map Not Loaded yet"); } } } gui.EndScrollView(); } else { if (lockCursor) { return; } gui.Label(PhotonNetwork.connectionState + " " + PhotonNetwork.GetRoomList().Length); gui.Label("Name:"); _Loader.playerName = gui.TextField(_Loader.playerName, 25); //gui.Label("GameName:"); //gameName = gui.TextField(gameName); gui.BeginHorizontal(); //if (gui.Button("Connect")) //{ // ShowLoading(true); // PhotonNetwork.JoinRoom(gameName == "" ? "test" : gameName); // _Loader.timer.AddMethod(6000, delegate { ShowLoading(false); }); //} if (gui.Button("Host")) { menu = Menu.SelectMap; } if (gui.Button("Options")) { menu = Menu.Options; } gui.EndHorizontal(); scrollPosition = gui.BeginScrollView(scrollPosition); //bug implement masterserver if (PhotonNetwork.GetRoomList().Length == 0) { GUILayout.Label("..no games available.."); } else { foreach (Room host in PhotonNetwork.GetRoomList()) { var sets = host.name.Split("/"); if (!isEditor) { if (sets.Length != 3) { continue; } if (sets[1] != version) { continue; } } string mapName = sets[0]; int p = GetLevelLoad(mapName); if (gui.Button(host.name + (" " + host.playerCount + "/" + host.maxPlayers) + (p < 100 ? (" " + p + "%") : ""))) { if (p == 100) { Print("Trying Connect to " + host.name); ShowLoading(true); _Loader.timer.AddMethod(6000, delegate { ShowLoading(false); }); this.mapName = mapName; PhotonNetwork.JoinRoom(host.name); } else { print("Map Not Loaded yet"); } } } } gui.EndScrollView(); } }
private void Start() { PhotonNetwork.ConnectUsingSettings("0.1"); Room = PhotonNetwork.GetRoomList(); }
public override void OnEnter() { //check if we are in a room or not //if (PhotonNetwoek.is) if (!PhotonNetwork.insideLobby) { Fsm.Event(notInLobbyEvent); Finish(); return; } if (nextRoomIndex == 0) { rooms = PhotonNetwork.GetRoomList(); } if (rooms.Length == 0) { nextRoomIndex = 0; Fsm.Event(noRoomsEvent); Fsm.Event(finishedEvent); Finish(); return; } if (nextRoomIndex >= rooms.Length) { nextRoomIndex = 0; Fsm.Event(finishedEvent); Finish(); return; } _room = rooms[nextRoomIndex]; // we get the room properties RoomName.Value = _room.name; maxPlayers.Value = _room.maxPlayers; open.Value = _room.open; visible.Value = _room.visible; playerCount.Value = _room.playerCount; // get the custom properties int i = 0; foreach (FsmString key in customPropertyKeys) { if (_room.customProperties.ContainsKey(key.Value)) { PlayMakerPhotonProxy.ApplyValueToFsmVar(this.Fsm, customPropertiesValues[i], _room.customProperties[key.Value]); } i++; } nextRoomIndex++; Fsm.Event(loopEvent); Finish(); }
private void CreateRoom() { PhotonNetwork.CreateRoom("Room " + (PhotonNetwork.GetRoomList().Length + 1 + Random.Range(1, 99)), true, true, 2); }
public void CoopButton() { roomopt.customRoomProperties = new PhotonHashTable() { { "Round", 1 }, { "State", 0 }, { "FlagOwner", -9999 }, { "Map", "City" }, { "Mode", "C" }, { "Friend", "N" } }; roomsList = PhotonNetwork.GetRoomList(); PhotonNetwork.offlineMode = false; //Joinning Lobby if (!ready) { PhotonNetwork.JoinLobby(); debugText.GetComponent <Text> ().color = Color.red; debugText.GetComponent <Text> ().text = "You're not connected yet"; } else if (!PhotonNetwork.connected) { debugText.GetComponent <Text> ().color = Color.red; debugText.GetComponent <Text> ().text = "You're not connected yet"; if (PlayerPrefs.GetInt("IsOnRoom", 0) == 1) { PhotonNetwork.Reconnect(); debugText2.GetComponent <Text> ().color = Color.yellow; debugText2.GetComponent <Text> ().text = "Connecting..."; } else { PhotonNetwork.ConnectUsingSettings("0.1"); debugText2.GetComponent <Text> ().color = Color.yellow; debugText2.GetComponent <Text> ().text = "Connecting..."; } //Or reconnect if player Disconnect from a room before } else if (PlayerPrefs.GetInt("IsOnRoom", 0) == 1) { bool found = searchRoom(); if (!found) { PlayerPrefs.SetInt("IsOnRoom", 0); PlayerPrefs.SetInt("Score", 0); PlayerPrefs.SetInt("Round", 1); debugText.GetComponent <Text> ().color = Color.red; debugText.GetComponent <Text> ().text = "Can't Reconnect. Click again to start new game"; } else { PhotonNetwork.JoinRoom(PlayerPrefs.GetString("RoomIsIn")); } } //If no room, create room else if (roomsList.Length == 0) { // Create Room roomName = PhotonNetwork.player.name + Random.Range(0, 10).ToString() + Random.Range(0, 10).ToString() + Random.Range(0, 10).ToString() + Random.Range(0, 10).ToString() + Random.Range(0, 10).ToString() + Random.Range(0, 10).ToString() + Random.Range(0, 10).ToString() + Random.Range(0, 10).ToString() + Random.Range(0, 10).ToString(); PhotonNetwork.JoinOrCreateRoom(roomName, roomopt, TypedLobby.Default); debugText.GetComponent <Text> ().color = Color.green; debugText.GetComponent <Text> ().text = "Creating room..."; } // Join Room else { PhotonNetwork.JoinRandomRoom(); debugText.GetComponent <Text> ().color = Color.green; debugText.GetComponent <Text> ().text = "Entering room..."; } }
public int getPages() { return((int)Math.Max(Math.Ceiling(PhotonNetwork.GetRoomList().Length * 1.0 / gamePanels.Length), 1)); }
void CreateNewRoom(string aName, RoomOptions aOptions) { RoomInfo[] rooms = PhotonNetwork.GetRoomList(); bool roomExists = false; if (aName == "") { aName = PhotonNetwork.player.NickName + "'s Room"; } for (int i = 0; i < rooms.Length; i++) { if (rooms[i].Name == aName) { roomExists = true; } } if (roomExists) { m_dialogDisplay.DisplayDialog("There's already a room named " + aName + "!"); m_roomName = ""; return; } int playerLevel = BrainCloudStats.Instance.GetStats()[0].m_statValue; if (m_roomLevelRangeMin < 0) { m_roomLevelRangeMin = 0; } else if (m_roomLevelRangeMin > playerLevel) { m_roomLevelRangeMin = playerLevel; } if (m_roomLevelRangeMax > 50) { m_roomLevelRangeMax = 50; } if (m_roomLevelRangeMax < m_roomLevelRangeMin) { m_roomLevelRangeMax = m_roomLevelRangeMin; } if (aOptions.MaxPlayers > 8) { aOptions.MaxPlayers = 8; } else if (aOptions.MaxPlayers < 1) { aOptions.MaxPlayers = 1; } ExitGames.Client.Photon.Hashtable customProperties = new ExitGames.Client.Photon.Hashtable(); customProperties["roomMinLevel"] = m_roomLevelRangeMin; customProperties["roomMaxLevel"] = m_roomLevelRangeMax; customProperties["StartGameTime"] = 10 * 60; customProperties["Team1Score"] = 0; customProperties["Team2Score"] = 0; customProperties["IsPlaying"] = 0; customProperties["MapLayout"] = m_presetListSelection; customProperties["MapSize"] = m_sizeListSelection; aOptions.CustomRoomProperties = customProperties; aOptions.CustomRoomPropertiesForLobby = new string[] { "roomMinLevel", "roomMaxLevel", "IsPlaying" }; _bc.Client.EntityService.UpdateSingleton("gameName", "{\"gameName\": \"" + aName + "\"}", null, -1, null, null, null); BrainCloudStats.Instance.ReadStatistics(); m_state = eMatchmakingState.GAME_STATE_CREATE_NEW_ROOM; PhotonNetwork.CreateRoom(aName, aOptions, TypedLobby.Default); }