public void JoinLobby(CSteamID lobbyId)
    {
        if (!SteamManager.Initialized)
        {
            lobbyConnectionState = SessionConnectionState.FAILED;
            return;
        }

        lobbyConnectionState = SessionConnectionState.CONNECTING;
        SteamMatchmaking.JoinLobby(lobbyId);
        // ...continued in OnLobbyEntered callback
    }
    public void CreateLobbyAndInviteFriend()
    {
        if (!SteamManager.Initialized)
        {
            lobbyConnectionState = SessionConnectionState.FAILED;
            return;
        }

        UNETServerController.inviteFriendOnStart = true;
        lobbyConnectionState = SessionConnectionState.CONNECTING;
        SteamMatchmaking.CreateLobby(lobbyAccess, MAX_USERS);
        // ...continued in OnLobbyEntered callback
    }
    public void FindMatch()
    {
        if (!SteamManager.Initialized)
        {
            lobbyConnectionState = SessionConnectionState.FAILED;
            return;
        }

        lobbyConnectionState = SessionConnectionState.CONNECTING;

        //Note: call SteamMatchmaking.AddRequestLobbyList* before RequestLobbyList to filter results by some criteria
        SteamMatchmaking.AddRequestLobbyListStringFilter("game", GAME_ID, ELobbyComparison.k_ELobbyComparisonEqual);
        var call = SteamMatchmaking.RequestLobbyList();

        m_LobbyMatchList.Set(call, OnLobbyMatchList);
    }
    public void Disconnect()
    {
        lobbyConnectionState = SessionConnectionState.DISCONNECTED;

        ClientScene.DestroyAllClientObjects();

        if (SteamManager.Initialized)
        {
            SteamMatchmaking.LeaveLobby(steamLobbyId);
        }

        if (myClient != null)
        {
            myClient.Disconnect();
            myClient = null;
        }

        UNETServerController.Disconnect();
        NetworkClient.ShutdownAll();

        steamLobbyId.Clear();
    }