Exemplo n.º 1
0
    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;
                }
            }
        }
    }
Exemplo n.º 2
0
    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);
        }
    }