加入大厅
玩家可以通过指定大厅 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 的行为。