示例#1
0
    public async void JoinLobbyAsync()
    {
        var selectedLobbyPanel = lobbyPanels.FirstOrDefault(x => x.isSelected);

        if (selectedLobbyPanel == null)
        {
            Debug.Log("No lobby selected");
            return;
        }

        lobby = lobbies.FirstOrDefault(x => x.lobbyId == selectedLobbyPanel.lobbyId);

        if (lobby == null)
        {
            Debug.LogError("No related lobby found");
            return;
        }

        localLobbyPlayer.isHost = false;

        await lobby.AddPlayerAsync(localLobbyPlayer);

        lobby.onLobbyRoomRefreshed += HandleOnLobbyRoomRefreshedAsync;
        lobby.onHostLeft           += HandleOnHostLeft;

        lobbiesReference.ValueChanged -= LobbyController_ValueChanged;

        lobbyNameText.text = lobby.name;
        lobbyBrowserWindow.SetActive(false);
        lobbyRoomWindow.SetActive(true);
    }
示例#2
0
    public async void CreateLobbyAsync()
    {
        localLobbyPlayer.isHost = true;

        lobby = await GameController.database.CreateLobbyAsync(createLobbyNameText.text);

        await lobby.AddPlayerAsync(localLobbyPlayer);

        lobby.onLobbyRoomRefreshed += HandleOnLobbyRoomRefreshedAsync;
        lobby.onGameStart          += HandleOnGameStart;

        lobbyNameText.text = lobby.name;

        lobbiesReference.ValueChanged -= LobbyController_ValueChanged;
        lobbyBrowserWindow.SetActive(false);
        lobbyRoomWindow.SetActive(true);
        //RefreshLobbiesAsync();
    }