更新大厅数据

玩家中只有厅主才能更新大厅的数据。其他玩家可以读取这类数据,具体取决于可见性选项(请参阅大厅数据和玩家数据)。

大厅级别的数据可以通过下列几种方式使用:

  • 已建立索引的公开大厅属性可以在查询过滤器中使用来查找匹配的大厅

    • 例如,您的游戏可以使用“游戏模式”作为已建立索引的自定义公开属性,然后玩家可以在查询中搜索“游戏模式 = foo”来查找匹配的大厅。
  • 仅限成员查看的大厅属性可以由厅主设置,但对所有成员可见

    • 这可以用来与大厅成员分享数据。
  • 私人大厅数据仅可由厅主设置并仅对厅主可见

    • 这可以用来设置重新连接时或下个厅主(主机迁移时)可能要使用的数据。

以下代码示例展示了如何更新大厅数据:

C#

try
        {
            UpdateLobbyOptions options = new UpdateLobbyOptions();
            options.Name = "testLobbyName";
            options.MaxPlayers = 4;
            options.IsPrivate = false;

            //Ensure you sign-in before calling Authentication Instance
            //See IAuthenticationService interface
            options.HostId = AuthenticationService.Instance.PlayerId;

            options.Data = new Dictionary<string, DataObject>()
            {
                {
                    "ExamplePrivateData", new DataObject(
                        visibility: DataObject.VisibilityOptions.Private,
                        value: "PrivateData")
                },
                {
                    "ExamplePublicData", new DataObject(
                        visibility: DataObject.VisibilityOptions.Public,
                        value: "PublicData",
                        index: DataObject.IndexOptions.S1)
                },
            };

            var lobby = await LobbyService.Instance.UpdateLobbyAsync("lobbyId", options);

            //...
        }
        catch (LobbyServiceException e)
        {
            Debug.Log(e);
        }