更新大厅数据

大厅主机是唯一可以更新大厅数据的玩家。其他玩家可以根据可见性选项读取这些数据(请参阅 大厅数据和玩家数据)。

大厅级数据可以在多种情况下使用

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

    • 例如,您的游戏可以使用“游戏模式”作为自定义公开索引属性,玩家可以在他们的查询中搜索“游戏模式 = 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);
        }