> 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-bian-ji-qi/jiao-hu-xing/smart-items.md).

# 智能物品 - 基础

在场景中使用智能物品来增加交互性。

场景编辑器目录中的一些项目是 **智能物件**。玩家可以与这些物件互动，它们具有可配置属性，并且可以触发其他智能物件上的动作。例如：可以打开和关闭的门、会上下移动的平台，或者可以激活其他物件的按钮和杠杆。

{% embed url="<https://www.youtube.com/watch?v=z7HF4GR01hE>" %}

你可以在资源包浏览器中认出这些物件，因为它们有闪电图标和不同颜色的背景。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-f368bfdf7894d18f29875528bdd91cf8429e70b3%2Fsmart-items.jpg?alt=media\&token=8f5f5b70-db16-4d37-b41c-4ee0eafe87e4)

你可以在实体树中通过旁边的闪电图标认出场景中哪些物件是智能物件。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-26c0c6fbe09714f92806651fe637acf153da0e80%2Fsmart-item-icon.png?alt=media\&token=d728c0a2-a90f-4dfd-993f-f65649059821)

## 使用物件

要使用智能物件，只需像其他物件一样把它拖入场景中。所有物件都包含默认行为，运行场景预览即可试用。

以下是一些常见物件及其默认行为：

* **门**：点击时，门会打开或关闭。你可以更改这种行为，让它们通过按钮、触发区域等方式打开。
* **按钮**：点击时，它们会播放声音和动画作为反馈。向它们的触发事件添加更多动作，以激活其他智能物件。
* **杠杆**：点击时，它们会在两种状态之间切换。让杠杆的每个位置对其他智能物件执行不同的动作。
* **宝箱**：它们的行为类似门，默认在点击时打开或关闭。你可以在里面放置更小的物件。
* **平台**：它们会在两个位置之间移动。使用它们的补间动作来控制移动到哪里、速度等。
* **触发区域**：一个不可见的物件，当玩家走入其区域时，可以触发其他智能物件。参见 [关于触发区域](#trigger-areas).
* **化身修饰区域**：一个不可见区域，可改变化身在其中的行为或外观，例如隐藏化身或禁用护照弹窗。参见 [修饰区域](/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/modifier-areas.md).
* **摄像机修饰区域**：一个不可见区域，可在玩家进入时强制其摄像机切换为第一人称或第三人称。参见 [修饰区域](/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/modifier-areas.md).
* **视频播放器**：用于显示视频或直播流的屏幕。参见 [播放视频](#playing-videos).
* **音频流**：从直播流播放音频。参见 [播放音频流](#playing-audio-streams)
* **NFT**：将 NFT 图像显示为肖像。参见 [显示 NFT](#displaying-nfts)

所有智能物件都可以配置为以自定义方式运行。例如，平台移动多远，或者按钮激活什么。

## 配置物件

在场景编辑器中选择一个物件，即可在右侧查看它的所有属性。

大多数智能物件将其行为保存在 [脚本组件](/creator/content-creator-zh/chang-jing-bian-ji-qi/shi-yong-dai-ma-kuo-zhan/script-component.md)中。它们的设置会显示在 **脚本** 面板里，每个参数对应一个字段，每个字段都有提示说明其作用。使用它们不需要编写任何代码。

你可以在许多物件中找到一些典型字段，例如：

* **悬停文本**：当玩家将光标移到物件上方时，UI 上显示的提示文本。例如，门可能会显示“打开”
* **交互**：该物件通过哪个按钮激活？在普通键盘上：
  * **主键** 是 **E**
  * **副键** 是 **F**
  * **指针** 是 **鼠标左键**
  * **动作3** 是按键 **1**
  * **动作4** 是按键 **2**
  * **动作5** 是按键 **3**
  * **动作6** 是按键 **4**
* **响应物件的钩子**：你可以在参数中选择在特定时刻运行的动作。物件具有什么钩子取决于它的用途。按钮有 **onClick**，杠杆有 **onActivate** 和 **onDeactivate**，移动平台有 **onReachStart** 和 **onReachEnd**，铃铛有 **onRing**。如果将钩子留空，那么在那个时刻不会发生任何事。

每个物件都有自己特定的设置，可能因物件而异。

有少数物件仍使用旧的 **配置** 面板。例如，灯光仍会在这里设置颜色和强度。

所有物件都有一个 **高级模式** ，可让你几乎配置它们的任何内容。这包括播放什么声音，或者平台向哪个方向移动。你还可以添加自定义动作，包含各种功能，例如传送玩家、播放化身动画、将物件附着到玩家手上等。你也可以添加条件逻辑，只在特定场景下激活某些内容。参见 [智能物件 - 高级](/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/smart-items-advanced.md).

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-958f6f53945e119e770d84f808814c18d173c9c1%2Fadvanced-mode.png?alt=media\&token=978e65ee-3cf8-49ce-a477-1523e2a6f714)

## 在另一个物件上调用动作

智能物件可以在其他智能物件上触发动作，使其在每次该物件被激活时执行。只需从场景中所有物件的列表里选择你想调用的物件，然后选择一个动作。不同物件会暴露不同的动作。

例如，这里有一个按钮，每次按下都会打开或关闭一扇门。每次按下按钮时，门要么打开，要么关闭。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-110156bc3c8fa17336e61490402e1cb19d83ff47%2Fbutton-to-door.png?alt=media\&token=1e558a4c-9887-435c-96c7-866d51a89cbd)

这里有一个杠杆，激活时会打开门，停用时会关闭那扇门。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-6e4cb24dd1b7e3e9b438b8825c0479672bc2254c%2Flever-to-door.png?alt=media\&token=2cd5aa81-5ea8-4f08-8cc8-d4ab0c666a6c)

你可以添加多个来自不同物件的动作，让它们一起触发。只需点击 **+ 分配动作**.

要移除动作，请点击动作旁边的三个点，然后选择 *移除动作*.

物件暴露的动作会保留其熟悉的名称，例如 **打开**, **关闭**, **坐在这里**, **开启**，或者 **传送**，因此物件之间的连线方式与以往相同。

你还可以串联动作。例如，如果某个杠杆的 **onActivate** 会打开门，而那扇门自身的钩子又触发了别的东西，那么杠杆就会间接引发整个链式反应。

如果你使用 [高级模式](/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/smart-items-advanced.md) ，你也可以为这些动作添加条件逻辑。

## 特殊智能物件

某些智能物件具有独特特性，使其在常见场景中非常实用：

### 触发区域

使用“触发区域”智能物件，可在玩家走入某个区域时触发动作。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-649dfd99d06849f543399b5b89a6a31a015cb439%2Ftrigger.png?alt=media\&token=cbc5fb9b-ecff-4733-b799-38b59244f78b)

把它拖进去，调整盒体或球体大小以覆盖你想要的区域，然后使用 **当玩家进入……** 和 **当玩家离开……** 按钮位于其 **响应** 部分，来描述应发生什么。 [AI 助手](/creator/content-creator-zh/chang-jing-bian-ji-qi/shi-yong-dai-ma-kuo-zhan/ai-assistant.md) 会为你编写脚本。参见 [触发区域](/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/trigger-area.md) 完整教程。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-f8389cd077c495e0b8ada33ca0da01800eee7dcd%2Fon_player_enters.png?alt=media\&token=5e0a4e67-34a4-4a69-851e-e8745be16fa2)

参见 [触发区域](/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/trigger-area.md) 获取更多信息。

### 隐形墙

一组不可见的形状，可阻止玩家穿过某个区域或点击穿过该区域。

当导入没有碰撞体网格的 3D 模型时，或者当你想创建一面玩家看不见的墙时，这些隐形墙会很有用。

参见 [碰撞体](/creator/content-creator-zh/chang-jing-sdk7/3d-nei-rong-ji-chu/colliders.md) 获取更多信息。

### 点击区域

一个不可见立方体，玩家可以点击它来触发其他智能物件上的动作。该物件可以被任何其他智能物件启用或禁用；禁用时就无法点击。你还可以设置玩家将光标指向它时看到的文本。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-e8ab432fd689e68f097f47e600c1789404f7ee4c%2Fclick-area.png?alt=media\&token=62f3aae5-fa22-413b-8d09-adeab8a24b70)

### 座椅

椅子、长凳和其他座椅都允许玩家通过点击坐下。

* 只有当坐下的玩家 **离开** 它超过 1.5 米时，座位才会空出来。
* 在有多个位置的物件上，例如长凳，点击它会让你坐到 **最近的空位**.
* 当所有位置都被占用时，悬停文本会显示 **座位已被占用** ，点击则不会有任何反应。

### 传送点

该 **传送** 物件会在玩家与之交互时把玩家传送到别处。

设置 **x** 和 **y** 参数可将他们发送到 Genesis City 中的某个地块。若要把他们发送到一个 [世界](/creator/content-creator-zh/chang-jing-sdk7/fa-bu/publishing-options.md#decentraland-worlds) ，则改为填写 **world** 参数并输入世界名称，例如 `myname.dcl.eth`，然后留空坐标。

{% hint style="warning" %}
**📔 注**：以前有一个单独的 **世界传送** 物件。它已被移除。请改用 **传送** 物件及其 **world** 参数。
{% endhint %}

### 移动设置

该 **移动设置** 物件会改变玩家在场景中时的移动速度和跳跃高度。可用它让场景更有漂浮感、在博物馆中减慢玩家速度，或在大地图上加快他们的移动。

把它拖到场景中的任意位置。场景开始时它就会应用这些值，而它的占位立方体只在编辑器中可见，玩家永远看不到。

每个字段都是一个滑块，预设为 Decentraland 的默认值：

| 字段                    | 默认值     | 范围     |
| --------------------- | ------- | ------ |
| `walkSpeed`           | 1.5 米/秒 | 0 到 10 |
| `jogSpeed`            | 8 米/秒   | 0 到 30 |
| `runSpeed`            | 10 米/秒  | 0 到 50 |
| `jumpHeight`          | 1 米     | 0 到 10 |
| `runJumpHeight`       | 1.5 米   | 0 到 10 |
| `doubleJumpHeight`    | 2 米     | 0 到 15 |
| `glidingSpeed`        | 6 米/秒   | 0 到 30 |
| `glidingFallingSpeed` | 1 米/秒   | 0 到 10 |
| `hardLandingCooldown` | 0.75 秒  | 0 到 5  |

慢跑是玩家默认的移动速度。步行和奔跑则是通过按住 Control 或 Shift 键获得的。

该物件还暴露两个可供其他智能物件调用的动作：

* `apply`：会把当前字段值再次写入玩家，例如在触发区域或按钮之后。
* `restoreDefaults`：会清除你的值，让玩家恢复为 Decentraland 的默认设置。

参见 [移动设置与限制](/creator/content-creator-zh/chang-jing-sdk7/jiao-hu-xing/tou-xiang/locomotion.md) 详细说明每个设置的作用，以及如何从代码中更改这些值。

### 播放视频

可从以下来源播放视频：

* **本地文件**
* **从 URL 进行串流**
* **实时串流来自** [**Decentraland Cast**](/creator/content-creator-zh/chang-jing-bian-ji-qi/shi-shi-yun-ying/live-streaming.md#dcl-cast-easy)
* **实时串流来自** [**RTMP 软件**](/creator/content-creator-zh/chang-jing-bian-ji-qi/shi-shi-yun-ying/live-streaming.md#stream-advanced) **（OBS、XSplit、StreamYard 等）**

{% hint style="warning" %}
**📔 注**：播放视频对性能要求较高，因此请保持同时播放的视频数量较少。引擎会根据每位玩家的画质设置限制可同时播放的视频数量（低画质为 1，中画质为 5，高画质为 10），并会暂停超过该限制的视频。参见 [播放视频](/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/video-screen.md#play-videos).
{% endhint %}

参见 [播放视频](/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/video-screen.md) 获取更多信息。

### 播放音频流

使用 **音频流** 智能物件从 URL 播放音频流。

{% hint style="info" %}
**📔 注**：并非所有流媒体服务都允许你在其网站之外播放音频。以下是一些在 Decentraland 中可用的示例：

```ts
GRAFFITI = 'https://n07.radiojar.com/2qm1fc5kb.m4a?1617129761=&rj-tok=AAABeIR7VqwAilDFeUM39SDjmw&rj-ttl=5'
SIGNS = 'https://edge.singsingmusic.net/MC2.mp3'
DELTA = 'https://cdn.instream.audio/:9069/stream?_=171cd6c2b6e'
JAZZ = 'https://live.vegascity.fm/radio/8010/the_flamingos.mp3'
```

{% endhint %}

你可以调整流的音量。请注意，流媒体音频不是具备空间位置效果的，而是在整个场景中以均匀音量播放。

### 显示 NFT

要在相框中显示 NFT，请使用 **NFT** 智能物件。你必须提供以下字段：

* 网络

{% hint style="info" %}
**📔 注**：当前 **ethereum** 是唯一受支持的网络。
{% endhint %}

* NFT 收藏合约：该 NFT 系列的智能合约。
* Token ID：该特定 NFT 藏品的 Token ID。

<img src="https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-a9cb3597437e714e11f51e76c1315a1420e3d93e%2Fnft-shape.png?alt=media" alt="NFT 形状" width="400">

你可以从 [OpenSea](https://opensea.io)获取这些信息，只需查看 NFT 图像下方的 **详情** 标签页。

<img src="https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-65a8932cfc446537eb6340c224fa47d067a12143%2Fopensea.png?alt=media" alt="OpenSea 详情" width="400">

{% hint style="info" %}
**📔 注**：你也可以从 opensea URL 中获取这些信息。例如，如果 NFT 的 URL 如下：

> `https://opensea.io/assets/ethereum/0x32b7495895264ac9d0b12d32afd435453458b1c6/1956`

你可以按以下方式填写字段：

* 网络：ethereum
* 合约：0x32b7495895264ac9d0b12d32afd435453458b1c6
* Token：1956
  {% endhint %}

你也可以配置背景颜色，这对于背景透明的 NFT 尤其实用。

你还可以选择一个 **相框样式**，为 NFT 套用多种不同风格，从经典到现代。

参见 [NFT](/creator/content-creator-zh/chang-jing-bian-ji-qi/gou-jian/nfts.md) 了解更多详情。

### 生命值条

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-7527837b3d800afc079980b60be5474e6d055b56%2Fhealth-bar.png?alt=media\&token=91e0e012-7a67-4c08-803d-10691eb7d821)

该 **生命值条** 智能物件是多个游戏机制的绝佳构建模块。它可以通过多种方式使用：

* 将其嵌套在 **玩家** 之下，以在化身上方显示玩家生命值

  ![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-4ba51729ed3cbcd78807385e4a315de8ea460a96%2Fnested-under-player.png?alt=media\&token=116856e8-a498-409f-b939-d03d244f51f8)
* 将其嵌套在 **摄像机** 之下，以将其固定显示在 UI 上

  ![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-3072a9cf441ecc75b66fba64c9ccbb367c4eb4f7%2Fnested-under-camera.png?alt=media\&token=d277b092-1d5b-4159-ac3f-5719f6fde662)
* 将其嵌套在场景中的任何物件之下，以跟踪该物件的生命值

  ![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-5c9737b98956f6817efd09ad5de786331cbd9666%2Fnested-under-barrel.png?alt=media\&token=098b603c-107b-4b15-92a9-484897d4ee44)

其他物件可以与生命值条交互，对其增加或减少生命值。

* 像 **尖刺** 或 **机器人敌人** 之类的物件可以降低生命值

  ![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-aed73698225063ac5cdd7257d9de8eb7c571e632%2Freduce-health.png?alt=media\&token=743a3bc9-08e3-4bdb-bd8e-15c9c5596bf8)
* 像 **急救** 或 **治疗垫** 之类的物件可以恢复它。

  ![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-2c80447061c76ae6b412ecbea4853f34d03469aa%2Frestore-health.png?alt=media\&token=50d3f237-6666-480a-a988-3e29fceda69e)

你必须配置生命值条，定义当生命值等于 0 时会发生什么。你可以让玩家重生到一个 **重生点** 智能物件的位置，重置他们的分数计数器，重生任何敌人，显示 UI 文本，或者任何符合你游戏逻辑的内容。

你还可以在生命值低于某个数值时触发动作，例如当生命值低于 3 时播放特殊音乐或显示 UI 提示。

生命值条可以配置为影响任何物件！例如，在 **木门** 智能物件下添加一个生命值条。玩家可以使用 **剑** 智能物件降低这个条的生命值，也可以通过来自 **桶** 的爆炸或 **机器人敌人**。为此，配置生命值条，使其在数值为 0 时对其父级物件执行一个动作。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-88d81e8b8ea6b0985853612179ccbe55fff7e1a4%2Fwall-with-health.png?alt=media\&token=bd0afaa9-95c8-45f1-a1c4-f7f2dfa3e7ee)

像 **剑** 这样的武器可以被玩家拾取，然后在执行动作时，对玩家附近任何带生命值条的其他物件造成伤害。

## 多人

几乎所有智能物件都有多人行为，因此当物件改变状态时，场景中的所有玩家都会共享同样的体验。如果玩家 A 打开了一扇门，玩家 B 也会看到那扇门打开。如果随后玩家 C 在其他玩家仍在场景中时进入场景，她也会看到那扇门已经是打开的。

但是，如果场景附近没有玩家，那么场景会恢复到默认状态。因此，如果所有玩家都离开了，但随后玩家 A 又回来，她会发现门是关闭的（如果门的默认状态就是关闭）。

请确保你设计的场景不会让一个玩家的操作破坏后来加入的其他玩家的体验。例如，如果场景是解谜游戏，你可以在 *延迟* 动作作用于一个 *工具* 智能物件上，让场景中的所有物件在谜题解开几秒后重置回初始状态。

你也可以禁用某个物件的多人行为，参见 [智能物件 - 高级](/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/smart-items-advanced.md).

## 故障排除

* *我场景中的某个物件应该可以点击，但却无法点击*.

请确保它没有被其他东西挡住。你不能穿过其他物件进行点击。某些物件有一个 *碰撞体网格* ，它具有简化几何形状，即使其可见形状看起来并没有挡住你的物件，也可能实际上在阻挡它。试着移动该物件看看会发生什么。

## 另请参见

* [智能物件 - 高级](/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/smart-items-advanced.md)
* [状态与条件](/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/states-and-conditions.md)
* [让任何物件变成智能物件](/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/make-any-item-smart.md)
* [与代码结合](/creator/content-creator-zh/chang-jing-bian-ji-qi/shi-yong-dai-ma-kuo-zhan/overview.md)


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.decentraland.org/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/smart-items.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
