> For the complete documentation index, see [llms.txt](https://docs.decentraland.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.decentraland.org/creator/content-creator-zh/chang-jing-sdk7/xiang-mu-lei-xing/scene-metadata.md).

# 场景元数据

了解如何设置场景并配置其元数据。

场景是一个在空间上有边界限制、并映射到一个或多个地块的 Decentraland 项目。如果场景部署到 Decentraland Genesis City 地图上，玩家可以通过访问场景坐标来体验它。如果场景部署到一个 [世界](/creator/content-creator-zh/chang-jing-sdk7/fa-bu/publishing-options.md#decentraland-worlds)，玩家可以通过 URL 访问它。

参见 [场景中的文件](/creator/content-creator-zh/chang-jing-sdk7/xiang-mu-lei-xing/scene-files.md) ，查看场景项目中使用了哪些文件的列表。

## 元数据

要在……中编辑场景的元数据， [Creator Hub 中的场景编辑器](/creator/content-creator-zh/chang-jing-bian-ji-qi/kai-shi-shi-yong/about-editor.md)，打开一个场景并点击 **铅笔图标**.

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-d2147688ebde75948ba26a9fbe1261f9abdc66c7%2Fpencil-icon.png?alt=media)

这会打开场景菜单，你可以在其中配置多个属性。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-5a3754defec68c898717a9468d29cf7d4e1d973e%2Fmetadata-ui.png?alt=media)

或者，你也可以直接编辑 `scene.json` 文件，其中存储了所有这些值。

{% hint style="warning" %}
**📔 注意**：不要向 `scene.json` 文件中添加本页未提及的自定义字段，否则可能会导致加载场景时出现问题。
{% endhint %}

## 场景标题、描述和图片

为你的场景提供标题、描述和缩略图非常重要，这有助于吸引玩家并让他们知道会看到什么。

当玩家在地图上选择你场景的地块时，他们会在一个模态窗口中看到这些内容。他们在被 [传送](/creator/content-creator-zh/chang-jing-sdk7/jiao-hu-xing/external-links.md) 到那里时，也会在确认界面中看到这些内容。在这里设置有吸引力的数据，可以显著帮助为你的场景引流。

当玩家在世界中导航并进入你的场景时，他们可以从小地图下方读到场景标题。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-5b757762ae3f0480ff5f7d65a67e2d077be5847b%2Fscene-name.png?alt=media)

通过 Scene Editor 中的场景菜单添加这些数据。

缩略图应为一个 *.png* 图像，推荐尺寸为 *228x160* 像素。支持的最小尺寸是 *196x143* 像素。如果宽高比例不匹配，图像可能会被拉伸 *228x160*.

图像应位于 `navmapThumbnail` 应为项目文件夹中某个图像文件的路径。它也可以是托管在其他位置的图像 URL 链接。

{% hint style="warning" %}
**📔 注意**：如果你将图像托管在其他地方，请确保该站点具有允许在其他网站上显示内容的宽松 CORS 策略。
{% endhint %}

如果你希望其他开发者能够联系你，也可以在场景中添加联系信息。

{% hint style="info" %}
**📔 注意**：World 会保留自己的名称、描述和缩略图，与场景的元数据分开。如果一个 World 只包含一个场景，则每次发布时，World 的元数据都会根据场景的元数据更新。如果它包含多个场景，则 World 的元数据是独立的，并且只能在……中编辑 **管理** 选项卡中于 Creator Hub 里编辑。参见 [世界元数据与场景元数据](/creator/content-creator-zh/chang-jing-bian-ji-qi/fa-bu/publish-scene.md#world-metadata-vs-scene-metadata).
{% endhint %}

## 类别

你可以为场景添加分类，帮助玩家探索 Decentraland。这些分类用于 [Decentraland Places dApp](https://places.decentraland.org) ，用于对每个地点进行分类，并让玩家更容易找到他们感兴趣的内容。

**类别** 需要从预定义选项列表中选择：

* 🎨 艺术
* 🕹️ 游戏
* 🃏 赌场
* 👥 社交
* 🎶 音乐
* 👠 时尚
* 🪙 加密货币
* 📚 教育
* 🛍️ 商店
* 🏢 商务
* 🏅 运动
* 🏃 跑酷

一个场景可以属于多个分类，但最多列出 3 个分类。

在 `scene.json` 分类列在 `标签` 数组中。

以下是预定义分类：

* `艺术`
* `游戏`
* `赌场`
* `社交`
* `音乐`
* `时尚`
* `加密货币`
* `教育`
* `商店`
* `商务`
* `运动`
* `跑酷`

例如，一个场景可以被标记为 `游戏` 和 `赌场` ，只需在以下内容中添加 `scene.json`

```json
  "tags": [
    "game",
    "casino",
  ],
```

之后，该场景就会在 Places dApp 中归类到 `游戏` 和 `赌场` 分类下。

## 年龄分级

该 **年龄分级** 字段用于对你的场景内容进行分类。Decentraland 是一个 18+ 平台。可用的选项如下：

* **🟡 `一个` 适用于成人（18+）**：这是 Decentraland 的 [《使用条款》](https://decentraland.org/terms)。如果你的场景包含适合成人的内容，例如中度或强烈的语言、暴力、露骨内容、赌博，或酒精、烟草和毒品等物质，请选择此分类。

通过……编辑年龄分级时， `scene.json`，分级是一个 **单字母代码**，请写 **一个** 表示成人。 `分级` 字段应位于 JSON 树的根级。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-641bfde710b047bcc83949bb7e54c794a59bc7f6%2Fcontent-moderation-flag-icon.png?alt=media)

```json
 "rating": "A"
```

### 受限内容

场景还有第三种分类：🔴 `R` 表示受限。此分级由内容审核员手动应用于违反 Decentraland [内容政策](https://decentraland.org/content)的场景。违规内容可能包括但不限于：

* 可疑内容或垃圾信息
* 辱骂性或仇恨内容
* 色情或贬低性内容
* 虐待儿童
* 骚扰或欺凌
* 宣扬恐怖主义/暴力
* 知识产权/版权侵权

具有此分级的场景将不会加载，任何人都无法与其交互。如果你的场景属于此类别，你应检查并更新它，以符合 [内容政策](https://decentraland.org/content).

## 功能开关

某些功能可以在特定场景中被禁用，以便玩家无法滥用它们。请在 **设置** 场景设置的选项卡中进行配置。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-256dd7099b9a9089211e7ce443211d5abfb61de5%2Fscene-restrictions.png?alt=media)

目前，只有以下功能以这种方式处理：

* **语音聊天**：指玩家使用麦克风通过语音聊天与附近其他玩家交谈。
* **禁用可移植体验**：此设置将决定玩家站在你的场景内时其任何可移植体验的行为。这不仅包括 [可移植体验](/creator/content-creator-zh/chang-jing-sdk7/xiang-mu-lei-xing/portable-experiences.md) 还包括 [智能穿戴设备](/creator/content-creator-zh/chang-jing-sdk7/xiang-mu-lei-xing/smart-wearables.md)。通过此设置，你可以选择保持它们全部启用（默认）、禁用它们，或隐藏其 UI。这对于那些可移植体验可能会给某些玩家带来不公平优势的场景很有用，例如在跑酷挑战中使用喷气背包。对于会进行区块链交易的场景，也建议禁止这些功能，因为恶意的可移植体验可能会冒充场景的 UI。

在 `scene.json` 文件中，这些开关在 `featureToggles`下进行管理。除非指定为 *已禁用* 在 `scene.json` 文件。

```json
"featureToggles": {
    "voiceChat": "disabled",
    "portableExperiences": "enabled" | "disabled" | "hideUi"
},
```

如果 `featureToggles` 一个属性在你的 `scene.json` 文件中不存在，请在 JSON 树的根级创建它。

### 打赏

你可以接收访问你场景的玩家打赏。要启用打赏，请前往 **详情** 选项卡中的场景设置，并在 **创作者钱包地址**.

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-7e5ad3784efc0fe3c5f96c88d866683e2177e274%2Fcreator-wallet-address.png?alt=media)

你也可以在 `scene.json` 文件中，在 `creator` 字段中。

```json
  "creator": "0x1234567890123456789012345678901234567890"
```

下提供一个以太坊地址。当玩家访问你的场景时，他们会在屏幕左上角看到一个存钱罐图标。点击后会打开一个弹窗，他们可以在其中给你打赏。也可以通过在地图上打开场景信息来访问此菜单。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-96c1bf20f0a166699479dd1ef946cf297904caf2%2FTipIcon.png?alt=media)

打赏弹窗允许玩家选择要发送的 MANA 数量。玩家必须在钱包中持有 MANA 才能打赏。如果你提供的地址关联了 Decentraland NAME，则此弹窗会在以太坊地址旁显示钱包所有者的名称。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-25d35de64b10216b0bcf6e2cc8061cf160941673%2Ftipping-modal.png?alt=media)

每当有玩家给你打赏时，你都会在 Decentraland 通知选项卡中收到通知。

## 出生位置

该 **出生设置** 在 **设置** 选项卡定义玩家直接访问你的场景时的出生位置，无论是直接在浏览器中输入坐标，还是通过传送。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-791de650bd7d09ceef08632a0191fbe6f1ac52fa%2Fspawn-point-ui.png?alt=media)

你的场景可能包含一些对象，如果玩家出生在其上方，就会阻挡他们移动，例如树木或楼梯。你的场景也可能有高地地形。为防止玩家出生在无法移动的位置，你可以在特定位置设置多个出生点。

该位置由场景内的坐标组成。这些数字表示地块内的一个位置，类似于你在场景代码中的 Transform 组件里用于 [放置实体](/creator/content-creator-zh/chang-jing-sdk7/3d-nei-rong-ji-chu/entity-positioning.md).

{% hint style="warning" %}
**📔 注意**：所有生成点都必须位于构成该场景的地块内。你不能让玩家生成在这些地块空间之外。
{% endhint %}

查看 **随机偏移** 框，用于在出生点周围随机偏移出生玩家。这样可以防止所有玩家出生时重叠在一起，这在拥挤的场景中看起来尤其糟糕。 **最大偏移** 值是在 X 和 Z 轴上与原始出生点之间的最大可能距离。

设置 **相机目标** 用于控制玩家进入你的场景时面朝的方向。这能让你更好地控制他们的第一印象，并有助于将他们引导到特定方向。默认情况下，它指向 `{x: 8, y:1, z:8}`，对于单地块场景来说这是场景中心；对于更大的场景来说，则是左下角地块的中心。

点击 **添加出生点** ，可列出任意数量的出生点。玩家将随机出现在其中一个。

### JSON 中的出生点

出生点也可以通过 `scene.json` 文件中的 `spawnPoints` 字段中。

```json
  "spawnPoints": [
    {
      "name": "spawn1",
      "position": {
        "x": 5,
        "y": 1,
        "z": 4
      }
    }
  ],
```

一个场景可以有多个出生点。这在大型场景中特别有用。要设置多个出生点，只需将它们列为一个数组。

```json
  "spawnPoints": [
    {
      "name": "spawn1",
      "position": {
        "x": 5,
        "y": 1,
        "z": 4
      }
	},
	{
      "name": "spawn2",
      "position": {
        "x": 3,
        "y": 1,
        "z": 1
      }
    }
  ],
```

当有多个出生点时，会选择距离玩家所指示坐标最近的那个。

如果一个出生点标记为 `default`，则无论它是否最近，都会始终被使用。如果多个出生点被标记为 `default`，则选择最近的那个。

```json
  "spawnPoints": [
    {
      "name": "spawn1",
      "default": true,
      "position": {
        "x": 5,
        "y": 1,
        "z": 4
      }
	},
	{
      "name": "not-used",
      "position": {
        "x": 3,
        "y": 1,
        "z": 1
      }
    }
  ],
```

**出生区域**

你可以将场景中的整个区域设置为一个出生点。通过为位置的每个维度指定由两个数字组成的数组，玩家将随机出现在该范围内的某个位置。这有助于防止进入的玩家互相重叠。请注意，三个维度必须使用相同格式：要么全是单个数字，要么全是由两个数字组成的数组。若要固定某个维度，请使用包含两个相同数字的数组，例如 `"y": [1,1]`.

```json
  "spawnPoints": [
    {
      "name": "region",
      "position": {
        "x": [1,5],
        "y": [1,1],
        "z": [2,4]
      }
    }
  ],
```

在上面的示例中，玩家可能会出现在一个正方形内的任意位置，该正方形的四个角位于 *1,1,2* 和 *5,1,4*.

一个场景也可以有多个出生区域，就像它可以有多个出生点一样。

```json
  "spawnPoints": [
    {
      "name": "region1",
      "position": {
        "x": [1,5],
        "y": [1,1],
        "z": [2,4]
      }
    },
      {
      "name": "region2",
      "position": {
        "x": [1,5],
        "y": [1,1],
        "z": [6,8]
      }
    }
  ],
```

**旋转**

你还可以指定玩家出生时的旋转方向，使他们面向特定方向。

只需添加一个 `cameraTarget` 字段到出生点数据中。 `cameraTarget` 的值应引用空间中的一个位置，并带有 *x*, *y* 和 *到* 相对于场景的坐标，就像 `位置` 字段中。

```json
  "spawnPoints": [
    {
      "name": "spawn1",
      "position": {
        "x": 5,
        "y": 1,
        "z": 4
      },
      "cameraTarget": {
        "x": 10,
        "y": 1,
        "z": 4
      }
    }
  ],
```

此示例会让玩家在 *5, 1, 4* 处出生，并朝向东，面向 *10, 1, 4*。如果出生位置是一个范围，玩家的朝向将始终与所指示的目标一致。如果有多个出生点，每个出生点都可以有自己独立的目标。

## 所需权限

该 `requiredPermissions` 属性管理着各种受控功能，这些功能可能被滥用并损害玩家的体验。

{% hint style="warning" %}
**📔 注意**：权限仅在 [可移植体验](/creator/content-creator-zh/chang-jing-sdk7/xiang-mu-lei-xing/portable-experiences.md) 和 [智能穿戴设备](/creator/content-creator-zh/chang-jing-sdk7/xiang-mu-lei-xing/smart-wearables.md)中相关。普通场景（无论是在地块中还是在 Worlds 中）都不受这些权限影响，并可自由使用相应功能。
{% endhint %}

除非在 `scene.json` 文件。

```json
"requiredPermissions": [
    "ALLOW_TO_MOVE_PLAYER_INSIDE_SCENE",
		"OPEN_EXTERNAL_LINK",
  ],
```

可以请求以下权限：

* `ALLOW_TO_MOVE_PLAYER_INSIDE_SCENE`：指 [移动玩家](/creator/content-creator-zh/chang-jing-sdk7/jiao-hu-xing/player-avatar.md#move-player)
* `ALLOW_TO_TRIGGER_AVATAR_EMOTE`：指 [在玩家头像上播放表情动作](/creator/content-creator-zh/chang-jing-sdk7/jiao-hu-xing/player-avatar.md#play-animations)
* `ALLOW_MEDIA_HOSTNAMES`: *（旧版）* 指流媒体传输（例如 [视频](/creator/content-creator-zh/chang-jing-sdk7/mei-ti/video-playing.md) 或 [音频](/creator/content-creator-zh/chang-jing-sdk7/mei-ti/audio-streaming.md)）来自外部域。
* `USE_WEB3_API`：指与玩家浏览器钱包交互，以进行交易或签名消息。
* `USE_FETCH`：指使用 `fetch` 或 `signedFetch`
* `USE_WEBSOCKET`：指与第三方服务器建立 websocket 连接
* `OPEN_EXTERNAL_LINK`：指提示玩家打开外部网站链接

如果 `requiredPermissions` 一个属性在你的 `scene.json` 文件中不存在，请在 JSON 树的根级创建它。

当使用 `ALLOW_MEDIA_HOSTNAMES`，还要包含一个 `allowedMediaHostnames` 位于根级的字段，列出允许该场景从哪些域传输媒体：

```json
"requiredPermissions": [
    "ALLOW_MEDIA_HOSTNAMES"
  ],
"allowedMediaHostnames": [
    "somehost.com",
    "otherhost.xyz"
  ],
```

{% hint style="warning" %}
**📔 注意**: `ALLOW_MEDIA_HOSTNAMES` 和 `allowedMediaHostnames` 是旧版设置，你通常不需要添加它们。它们仅由旧版本的网页客户端强制执行；当前的 Decentraland 客户端可以在没有它们的情况下播放外部媒体。
{% endhint %}

## 场景地块

当 [部署](/creator/content-creator-zh/chang-jing-sdk7/fa-bu/publishing.md) 场景时，内容会上传到场景配置中分配的坐标。一个场景可以包含单个地块，也可以包含多达几十个地块的列表。

在 Scene Editor 的场景菜单第二个选项卡中可编辑此项。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-54a1901635efda3371172e647c03614733baca17%2Fscene-parcels-3x3.png?alt=media)

使用下拉菜单并点击 **应用布局** 以更改场景的尺寸。你也可以点击每个单独的地块，将其从布局中切换为关闭。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-bbc2ecb567600843892a8c8873aaa70107e66839%2Fscene-parcels-toggled.png?alt=media)

默认场景的坐标设置为 *0,0*。在离线开发场景时，你不需要更改这一点，除非你需要占用多个地块。在部署到你拥有部署权限的坐标之前，你需要先更改它。

你也可以在……上更改场景坐标 `scene.json` 文件，有一些需要考虑的事项：

```json
 "scene": {
    "parcels": [
      "54,-14"
    ],
    "base": "54,-14"
  }
```

该 `base` 字段定义将哪个地块视为基础地块。如果你的场景只有一个地块，基础地块就应该是那个地块。如果你的场景有多个地块，基础地块应为左下角（西南）地块。所有实体位置都以该地块的西南角为相对基准进行测量。

要在场景预览中显示多个地块，请列出你打算使用的所有地块。它们不必与实际部署到的地块完全一致，但应彼此相邻，并保持相同的相对位置。

```json
 "scene": {
    "parcels": [
      "54,-14",  "55,-14"
    ],
    "base": "54,-14"
  }
```

{% hint style="warning" %}
**📔 注意**：你可以设置的最大场景尺寸为 300 x 300 个地块（总计 90,000 个地块）。
{% endhint %}

### 通过命令行设置地块

你可以通过运行 `npx update-parcels` 命令来设置场景文件夹中的地块。这对大型场景尤其有用，因为你无需逐个列出涉及的每个地块。

{% hint style="warning" %}
**📔 注意**: `update-parcels` 是一个第三方社区工具，它不是官方 Decentraland SDK 的一部分，也不由 Decentraland 基金会维护。
{% endhint %}

**单个地块**

传入一个带有场景坐标的单个参数。该坐标也会被设为基础地块。

`npx update-parcels <parcel>`

例如：

`npx update-parcels 15,-26`

**多个地块**

传入两个参数：西南和东北地块。西南地块也会被设为基础地块。

`npx update-parcels <parcel> <parcel>`

{% hint style="info" %}
**💡 提示**：西南地块始终是两个 *X* 和 *Y* 坐标数字都最小的那个。
{% endhint %}

例如：

`npx update-parcels 15,-26 17,-24`

该命令会生成一个 3x3 场景，其基础地块位于 `15,-26`.

**自定义基础地块**

传入三个参数：西南地块、东北地块，以及要用作基础地块的地块。

`npx update-parcels <parcel> <parcel> <parcel>`

{% hint style="warning" %}
**📔 注意**：基础地块必须是场景中的一个地块。
{% endhint %}

**非方形场景**

上述命令都会生成矩形场景。Decentraland 场景可以是 L 形或其他配置。你可以先生成一个更大的正方形，然后使用 `npx update-parcels` ，然后手动从……中移除多余地块 `scene.json` 文件。

{% hint style="warning" %}
**📔 注意**：基础地块必须是场景中的一个地块。
{% endhint %}

## 天空盒时间

你可以为场景设置固定的时间。所有玩家看到的场景都会是这个时间，天空盒不会遵循昼夜循环。

打开场景设置并点击 **设置** 选项卡以找到 **天空盒** 部分。取消勾选 **自动** 选项，然后设置你想要的时间。

你也可以在场景代码中设置天空盒时间。为此，请将以下部分添加到你的 `scene.json` 根级别：

```json
 "skyboxConfig": {
    "fixedTime": 36000
  }
```

该数字表示自一天开始以来的秒数，范围从 0（表示 *00:00*）到 86400（表示 *24:00*）。任何大于 86400 的数字也会被解释为午夜。

以下是一些更多有效值示例：

* 0 秒 => *00:00*
* 21600 秒 => *06:00*
* 43200 秒 => *12:00*
* 64800 秒 => *18:00*
* 86400 秒 => *24:00*

## 景观地形

发布到 [Decentraland 世界](https://github.com/decentraland/docs/tree/main/creator/worlds/about.md) 的场景会被自动生成的草地、树木和海洋景观包围。如果这种景观不符合你场景的美学风格，例如漂浮在开阔水面或太空中的场景，你可以将其禁用。为此，请将以下字段添加到你的 `scene.json` 根级别：

```json
{
	"landscapeTerrain": false
}
```

使用 `landscapeTerrain` 设置为 `false`时，场景地块之外不会渲染任何内容，玩家只能看到场景周围的天空盒。移除周围地形还会释放渲染资源，有助于让你的场景运行更流畅。

如果未设置该字段，则默认为 `真` ，并会照常显示景观。

{% hint style="warning" %}
**📔 注意**：此字段仅适用于只包含单个场景的 World。在 Genesis City 中会忽略它，因为周围环境始终由相邻地块决定。你也可以在本地预览场景时使用它，以查看没有景观时的场景效果。
{% endhint %}

## World 配置

当发布到 [Decentraland 世界](/creator/content-creator-zh/chang-jing-sdk7/fa-bu/publishing-options.md#decentraland-worlds)时，你可以在你的 `scene.json` 文件中使用 `worldConfiguration` 对象。

### 基础 World 配置

要发布到一个 World，你必须在你的 `scene.json`:

```json
{
	"worldConfiguration": {
		"name": "my-name.dcl.eth"
	}
}
```

该 **名称** 中指定 NAME 或 ENS 域。所指定的名称可以是 Decentraland NAME 或 ENS 域，并且必须由签署部署的钱包拥有（或由通过访问控制列表获得权限的任何钱包拥有）。

### 通信服务配置

该 `fixedAdapter` 属性表示场景应使用哪个通信服务。目前仅允许 `offline:offline` 值。设置后，场景将完全没有通信服务，加入该 World 的每个用户都将始终独自一人。如果不设置，World 内容服务器将根据其配置生成合适的值。

```json
{
	"worldConfiguration": {
		"name": "my-name.dcl.eth",
		"fixedAdapter": "offline:offline"
	}
}
```

{% hint style="warning" %}
**📔 注意**：设置 `fixedAdapter` 为 `"offline:offline"` （或在 Creator Hub 的 World 设置中启用 **单人模式** ）会禁用直播功能。流媒体功能依赖通信层向观众传送视频。如果你在你的 world 中需要直播，请不要使用此选项。
{% endhint %}

### Places 列表配置

除非你选择退出，否则所有 World 都会自动列在 Places 页面上。如果你希望取消你的 World 在 Places 中被索引，可以添加以下内容：

```json
{
	"worldConfiguration": {
		"name": "my-name.dcl.eth",
		"placesConfig": {
			"optOut": true
		}
	}
}
```

### 完整示例

下面是包含所有 World 配置选项的完整示例：

```json
{
	"worldConfiguration": {
		"name": "my-name.dcl.eth",
		"fixedAdapter": "offline:offline",
		"placesConfig": {
			"optOut": true
		}
	}
}
```

参见 [发布到 Worlds](/creator/content-creator-zh/chang-jing-sdk7/fa-bu/publishing.md#publishing-to-worlds) 以了解有关部署到 Worlds 的更多信息。

## 从场景代码中获取元数据

[场景 API 参考](https://js-sdk-toolchain.pages.dev/modules/js_runtime_apis.__system_Scene_)

你可能需要通过场景代码来访问场景元数据中的字段，例如场景部署到的地块或出生点位置。这对于打算被复制的场景，或打算在其他场景中重复使用的代码尤其有用。对于需要知道场景边界在哪里的库来说，这也非常有用。

要访问这些数据，首先导入 `getSceneInformation` 函数：

```ts
import { getSceneInformation } from '~system/Runtime'
```

然后你可以调用 `getSceneInformation()` 函数，它会返回一个 JSON 对象，其中包含 scene.json 文件的大部分内容。下面的示例展示了如何从该函数的返回值中访问几个更常见的字段：

```ts
import { getSceneInformation } from '~system/Runtime'

executeTask(async () => {
  const sceneInfo = await getSceneInformation({})

  if (!sceneInfo) return
  console.log("SCENE INFO: ", sceneInfo)
})
```

{% hint style="warning" %}
**📔 注意**: `getSceneInformation()` 需要作为一个 [异步函数](/creator/content-creator-zh/chang-jing-sdk7/bian-cheng-mo-shi/async-functions.md)运行，因为响应在返回数据时可能会延迟零点几秒或更久。不要使用已弃用的 `getSceneInfo()` 函数。
{% endhint %}

由 `getSceneInformation()` 返回的对象包含以下内容：

* `baseUrl`：场景内容托管的基础 URL
* `content`：包含场景所有文件的数组，包括它们的哈希，可与 baseUrl 一起用于检索它们。
* `metadataJson`：场景的 scene.json 的完整内容，作为字符串。你必须解析它才能获取特定值。
* `urn`：整个场景的唯一 urn。

下面的示例解析 `metadataJson` 中的内容，以获取 scene.json 文件中属性的值

```ts
import { getSceneInformation } from '~system/Runtime'

executeTask(async () => {
	const sceneInfo = await getSceneInformation({})

	if (!sceneInfo) return

	const sceneJson = JSON.parse(sceneInfo.metadataJson)
	const spawnPoints = sceneJson.spawnPoints
	const parcels = sceneJson.scene.parcels
	console.log({ parcels, spawnPoints })
})
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.decentraland.org/creator/content-creator-zh/chang-jing-sdk7/xiang-mu-lei-xing/scene-metadata.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
