private void OnRoomFilled() { PhotonNetwork.room.IsOpen = PhotonNetwork.room.IsVisible = false; Models.Get <IGamestateModel>().SetState(Gamestate.ReadyCheck); var players = new Dictionary <int, string>(); foreach (var player in PhotonNetwork.playerList) { Debug.Log($"NickName: {player.NickName} | ID: {player.ID} | UserId: {player.UserId}"); players.Add(player.ID, player.NickName); } var sortedPlayers = from pair in players orderby pair.Key ascending select pair; PlayerDetails[] playerDetailsArray = new PlayerDetails[sortedPlayers.Count()]; for (int i = 0; i < sortedPlayers.Count(); i++) { var details = new PlayerDetails(sortedPlayers.ElementAt(i).Key, i, sortedPlayers.ElementAt(i).Value); playerDetailsArray[i] = details; if (details.Name == PhotonNetwork.playerName) { LocalPlayerID = i; } } CurrentPlayers = playerDetailsArray; if (_readyCheckCoroutine != null) { _co.StopCoroutine(_readyCheckCoroutine); } _readyCheckCoroutine = _co.StartCoroutine(PlayerReadyCountdown(READY_CHECK_TIME)); SessionSeed = SeedGenerator.StringToSeed(PhotonNetwork.room.Name); EventDispatcher.Broadcast(RoomFilled, playerDetailsArray); }