加入大厅

玩家可以通过指定大厅 ID 或提供大厅代码来加入大厅。大厅代码是系统自动生成的短代码,与特定的大厅相对应,旨在供玩家相互分享。大厅的大厅代码是仅有成员可见的大厅属性。

最佳实践

当尽量减少请求时,Lobby 服务可以提供最佳体验。Join API 支持在 Join 调用中传递玩家数据,因此最好采用这种方式,而不是先进行 Join 调用,然后在加入大厅后进行单独的 Update Player 调用。

通过指定大厅 ID 来加入

以下代码示例展示了如何通过指定大厅 ID 来加入大厅:

C#

try
{
    await LobbyService.Instance.JoinLobbyByIdAsync("lobbyId");
}
catch (LobbyServiceException e)
{
    Debug.Log(e);
}

通过提供大厅代码来加入

以下代码示例展示了如何通过使用代码来加入大厅:

C#

try
{
    await LobbyService.Instance.JoinLobbyByCodeAsync("lobbyCode");
}
catch (LobbyServiceException e)
{
    Debug.Log(e);
}

一些文本输入包可能会为文本栏中的字符串附加不可见字符,这可能导致传递给服务的加入代码无效。您将会收到一个 InvalidJoinCode 错误,其中详细说明了为什么代码无效,以帮助解决这种错误。您还应该处理此错误,以通知用户他们是否在加入时输入了无效的字符。

加入受密码保护的大厅

以下代码示例展示了如何通过使用 ID 或代码来加入受密码保护的大厅:

C#

try
{
    // Join by ID:
    var idOptions = new JoinLobbyByIdOptions{Password ="mySecret"};
    await Lobbies.Instance.JoinLobbyByIdAsync("lobbyId", idOptions);

    // Join by Code:
    var codeOptions = new JoinLobbyByCodeOptions{Password ="mySecret"};
    await Lobbies.Instance.JoinLobbyByCodeAsync("lobbyId", codeOptions);
}
catch (LobbyServiceException e)
{
    Debug.Log(e);
}

一些文本输入包可能会为文本栏中的字符串附加不可见字符,这可能导致传递给服务的密码无效。服务无法确定这些不可见字符是有意还是无意输入的,因此可能无法将其与有效的 IncorrectPassword 错误区分开来。请务必确认请求中发送的密码与预期的字符串精确一致。Join Lobby by Code API 能够提供此类错误的更多详细信息,因此您或许能够先使用该 API 来验证 UI 的行为。