void OnLobbyEnter(LobbyEnter_t cb) { INetworkIdentity id = GameObject.Instantiate(voiceUserPrefab.gameObject).GetComponent <INetworkIdentity>(); id.IsLocalPlayer = true; id.NetworkId = self.m_SteamID; if ((EChatRoomEnterResponse)cb.m_EChatRoomEnterResponse == EChatRoomEnterResponse.k_EChatRoomEnterResponseSuccess) { CSteamID lobbyId = new CSteamID(cb.m_ulSteamIDLobby); int n = SteamMatchmaking.GetNumLobbyMembers(lobbyId); for (int i = 0; i < n; i++) { CSteamID client = SteamMatchmaking.GetLobbyMemberByIndex(lobbyId, i); if (client.m_SteamID != self.m_SteamID) { others.Add(client.m_SteamID, client); id = GameObject.Instantiate(voiceUserPrefab.gameObject).GetComponent <INetworkIdentity>(); id.IsLocalPlayer = false; id.NetworkId = client.m_SteamID; } } } }
void OnLobbyChatUpdate(LobbyChatUpdate_t upd) { CSteamID changed = new CSteamID(upd.m_ulSteamIDUserChanged); if ((EChatMemberStateChange)upd.m_rgfChatMemberStateChange == EChatMemberStateChange.k_EChatMemberStateChangeEntered) { others.Add(changed.m_SteamID, changed); INetworkIdentity id = GameObject.Instantiate(voiceUserPrefab.gameObject).GetComponent <INetworkIdentity>(); id.IsLocalPlayer = false; id.NetworkId = changed.m_SteamID; } else { others.Remove(changed.m_SteamID); SteamNetworking.CloseP2PSessionWithUser(changed); } }