LobbyInfo CreateLobbyInfo(CSteamID id) { var info = new LobbyInfo(this); info.Id = id.m_SteamID; UpdateLobbyInfo(info); return(info); }
void UpdateLobbyInfo(LobbyInfo info) { var lobbyId = new CSteamID(info.Id); info.Name = SteamMatchmaking.GetLobbyData(lobbyId, kNameKey); info.OnwerName = SteamMatchmaking.GetLobbyData(lobbyId, kOwnerName); info.CurrentPlayers = SteamMatchmaking.GetNumLobbyMembers(lobbyId); info.MaxPlayers = SteamMatchmaking.GetLobbyMemberLimit(lobbyId); }
public async Task JoinLobby(LobbyInfo lobby) { if (!SteamManager.Initialized) { throw new InvalidOperationException("Cannot join Steam lobby if SteamManager is not initalized."); } var lobbyEnter = await SteamMatchmaking.JoinLobby(new CSteamID(lobby.Id)).ToTask <LobbyEnter_t>(); var response = (EChatRoomEnterResponse)lobbyEnter.m_EChatRoomEnterResponse; if (response != EChatRoomEnterResponse.k_EChatRoomEnterResponseSuccess) { throw new Exception($"Failed to join lobby: {response}"); } }
public async Task JoinLobby(LobbyInfo lobby) { if (lobby == null) { return; } var manager = NetworkManager.Instance; var client = manager.StartClient(new NetworkClientConfig(), manager.Matchmaker.NetworkInterfaceType); try { SetActive(ConnectingScreen); await client.Connect(new NetworkConnectionConfig { LobbyInfo = lobby }); SetActive(SuccessScreen); } catch (NetworkingException exception) { SetActive(ErrorScreen); ErrorText.text = exception.Message; } }