创建大厅
Create a new lobby with customizable properties including name, visibility, capacity, password protection, and custom data.
阅读时间3 分钟最后更新于 1 个月前
创建新的大厅时,玩家可以通过创建调用设置以下属性:
- 大厅名称(必需)
- 大厅可见性(公开还是私人)
- 大厅大小(最大玩家人数)
- 在代码中,这被称为最大玩家数。
- 密码
- 加入大厅时所需输入的 8 至 64 位字符密码。
- 初始自定义大厅数据
- 这可以包括任意数据,例如地图 ID 和游戏模式。
- 可以为字符串或数值形式的大厅数据建立索引,以便在查询时基于这些索引进行筛选和排序。
- 初始(厅主)玩家数据
- 例如,玩家显示名称、技能和角色。
创建公开大厅
公开大厅无需输入大厅代码即可加入,并会显示在查询结果中,供任何玩家加入。 以下代码示例展示了如何创建公开大厅: C#string lobbyName = "new lobby";int maxPlayers = 4;CreateLobbyOptions options = new CreateLobbyOptions();options.IsPrivate = false;Lobby lobby = await LobbyService.Instance.CreateLobbyAsync(lobbyName, maxPlayers, options);
创建私人大厅
私人大厅永远不会显示在查询结果中,新玩家需要手动输入大厅代码或 ID 才能加入。 以下代码示例展示了如何创建私人大厅: C#string lobbyName = "new lobby";int maxPlayers = 4;CreateLobbyOptions options = new CreateLobbyOptions();options.IsPrivate = true;Lobby lobby = await LobbyService.Instance.CreateLobbyAsync(lobbyName, maxPlayers, options);
创建包含标准非索引数据的大厅
创建请求和后续的更新请求都可以包括大厅数据。 以下代码示例展示了如何创建包含标准非索引数据的大厅: C#string lobbyName = "new lobby";int maxPlayers = 4;CreateLobbyOptions options = new CreateLobbyOptions();options.Data = new Dictionary<string, DataObject>(){ { "ExamplePublicLobbyData", new DataObject( visibility: DataObject.VisibilityOptions.Public, // Visible publicly. value: "ExamplePublicLobbyData") },};Lobby lobby = await LobbyService.Instance.CreateLobbyAsync(lobbyName, maxPlayers, options);
创建包含索引字符串数据的大厅
以下代码示例展示了如何创建包含索引字符串数据的大厅: C#string lobbyName = "new lobby";int maxPlayers = 4;CreateLobbyOptions options = new CreateLobbyOptions();options.Data = new Dictionary<string, DataObject>(){ { "GameMode", new DataObject( visibility: DataObject.VisibilityOptions.Public, // Visible publicly. value: "Conquest", index: DataObject.IndexOptions.S1) },};Lobby lobby = await LobbyService.Instance.CreateLobbyAsync(lobbyName, maxPlayers, options);
创建包含索引数值数据的大厅
以下代码示例展示了如何创建包含索引数值数据的大厅: C#string lobbyName = "new lobby";int maxPlayers = 4;CreateLobbyOptions options = new CreateLobbyOptions();options.Data = new Dictionary<string, DataObject>(){ { "MinimumSkillLevel", new DataObject( visibility: DataObject.VisibilityOptions.Public, // Visible publicly. value: "25", index: DataObject.IndexOptions.N1) },};Lobby lobby = await LobbyService.Instance.CreateLobbyAsync(lobbyName, maxPlayers, options);
创建包含厅主玩家数据的大厅
与大厅数据一样,厅主玩家数据也可以包含在创建请求中,而不必通过单独的更新请求来进行添加。 以下代码示例展示了如何创建包含厅主玩家数据的大厅: C#string lobbyName = "new lobby";int maxPlayers = 4;CreateLobbyOptions options = new CreateLobbyOptions();// Ensure you sign-in before calling Authentication Instance.// See IAuthenticationService interface.options.Player = new Player( id: AuthenticationService.Instance.PlayerId, data: new Dictionary<string, PlayerDataObject>() { { "ExampleMemberPlayerData", new PlayerDataObject( visibility: PlayerDataObject.VisibilityOptions.Member, // Visible only to members of the lobby. value: "ExampleMemberPlayerData") } });Lobby lobby = await LobbyService.Instance.CreateLobbyAsync(lobbyName, maxPlayers, options);