// Called by Photon when the user joins a room void OnJoinedRoom() { searchingLabel = SearchingLabel.Instance; searchingLabel.OnSearchingStart(); // Obsolete: disconnect and reconnect handling if (isRejoined) { GameHandler.Instance.currentMap = MapManager.Instance.GetMap((string)PhotonNetwork.room.CustomProperties["m"]); isRejoined = false; } }
// Called every frame; checks to see whether a room is full void Update() { if (PhotonNetwork.connected) { if (PhotonNetwork.room != null) { if (lobbyState == LobbyStates.searching) { // Wait for players if (PhotonNetwork.room.PlayerCount == PhotonNetwork.room.MaxPlayers) { searchingLabel.OnSearchingPause(); championSelect.OnStart(); lobbyState = LobbyStates.championSelect; StartCoroutine(UpdateGameID()); // Host player to instantiate the map for all players in the room if (PhotonNetwork.isMasterClient) { PhotonNetwork.room.IsVisible = false; PhotonNetwork.Instantiate(gameHandler.currentMap.map.name, gameHandler.currentMap.map.transform.position, gameHandler.currentMap.map.transform.rotation, 0); } } } if (lobbyState == LobbyStates.championSelect) { // Return to searching if a player has left if (PhotonNetwork.room.PlayerCount < PhotonNetwork.room.MaxPlayers) { lobbyState = LobbyStates.searching; searchingLabel.OnSearchingStart(); championSelect.OnStop(); } } } } }