> 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-advanced.md).

# 智能物品 - 高级

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

大多数智能物品都有一个基础模块，你只能以简单的方式配置最常见的设置，但你可以向下滚动，越过 **高级** 标记，以自定义关于该物品行为的几乎任何内容。

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

以下物品具有一个 Transform 组件和一个基础模块，该模块仅公开用于配置按钮的基本字段。但如果你向下滚动，越过 **高级** 标记，你会找到所有可用的设置。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-f2e51018feb637e8aac6ec99a7998f64f416a0bb%2Fadvanced-settings-smart-item.png?alt=media\&token=665dc7bf-5758-4853-9c0c-443b89bf5029)

{% hint style="info" %}
**📔 注意**：基础模块中的大多数设置在下方的组件中也可用。基础模块中所做的更改会反映到下方的组件中，反之亦然，除了一些情况：基础设置是对下方多个设置的抽象。在这些情况下，将高级设置更改为基础模块不支持的值，会导致基础模块中的字段被标记为未定义。
{% endhint %}

## 高级配置

属性分组为 [**组件**](/creator/content-creator-zh/chang-jing-sdk7/jia-gou/entities-components.md)。不同的智能物品可能具有不同的组件，这取决于它们的功能。

大多数物品的行为由以下内容控制：

* [**操作**](#actions)：Actions 组件定义了物品可以执行的操作。例如播放声音、播放动画、向上移动，或变为不可见。
* [**触发器**](#triggers)：Triggers 组件指定哪些事件会触发这些操作。例如玩家点击物品时、玩家走入某个区域时，或场景首次加载时。

例如，在一个门智能物品中， **操作** 组件包含“Open”和“Close”操作。 **触发器** 该物品中的组件包含一个 **点击时** 触发器，当玩家点击门时会激活“Open”操作。

智能物品的触发器可以激活场景中任何智能物品上的操作，而不仅仅是同一个智能物品。例如，一个按钮智能物品可以有一个 **触发器** 组件，它会激活定义在 **操作** 悬浮平台的组件上的“move up”操作。

触发器也可以有条件地发生。例如，门智能物品在其 **点击时** Triggers 组件中包含两个触发器：一个在门关闭时打开门，另一个在门打开时关闭门。更多详情请参见 [状态和条件逻辑](/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/states-and-conditions.md).

## 物品之间的交互

要让物品彼此交互：

* 一个物品需要在一个 [操作](#actions) 组件。
* 另一个物品需要在 [触发器](#triggers) 组件中有一个指向该操作的触发器。

例如，要让按钮打开一扇门：

1. 添加任意按钮智能物品，打开它的 **触发器** 组件。它有一个默认的触发事件，会为按钮本身播放声音和动画。
2. 点击 **+** 旁边的符号 **已分配的操作**，以在同一个触发事件上添加第三个操作。
3. 在第一个下拉菜单中选择门的智能物品。
4. 在第二个下拉菜单中，选择“Open”操作。

![](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)

{% hint style="info" %}
**💡 提示**：你也可以创建一个新的触发器事件，只处理门的操作。每次按钮被点击时，这两个触发器事件都会被调用。

<img src="https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-30d3ef36d5482564fd8b67854fdd9e9ab2c16cc7%2Fbutton-to-door2.png?alt=media" alt="" data-size="original">
{% endhint %}

只要操作已定义，任何物品都可以触发其他任何物品的任何操作。请参见 [触发器](#triggers) ，了解触发操作的更多方式。

你可以使用 [状态和条件逻辑](/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/states-and-conditions.md) ，仅在满足条件时触发操作。该条件甚至可以检查第三个智能物品的状态。例如，只有当自定义的“power generator”智能物品的状态设置为“On”时，按钮才会打开门。

## 操作

该 **操作** 组件列出了物品可以执行的操作。每个智能物品都包含一组预定义操作。你可以自定义现有操作或添加新操作。以下类型的操作可用：

* **播放动画**：在物品的 3D 模型中播放动画。请参见 [关于播放动画](#about-playing-animations)
* **停止动画**：停止物品的 3D 模型正在播放的所有动画。
* **播放声音**：在物品所在位置播放文件中的声音。请参见 [关于播放声音](#about-playing-sounds)
* **停止声音**：停止由该物品播放的所有声音。
* **开始补间**：在给定时间内使位置、旋转或缩放逐渐变化。请参见 [移动、旋转或缩放](#moving-rotating-or-scaling).
* **设置可见性**：使物品可见或不可见。
* **附加到玩家**：将物品设置为玩家头像的子级。例如，让它拿在手上或举在头顶上方。
* **从玩家分离**：将物品与玩家头像分离。
* **打开链接**：在浏览器标签页中打开一个外部网站链接。打开前会询问玩家是否信任该域名。

{% hint style="info" %}
**📔 注意**：此操作只能通过点击物品触发，不能通过走入触发区域来触发。
{% endhint %}

* **移动玩家**：将玩家的位置更改为场景内的一组本地坐标。只能在同一场景内移动玩家。
* **传送玩家**：将玩家传送到 Decentraland 中的另一个位置。使用 **传送模式** 下拉菜单可将他们发送到 **到坐标** Genesis City 中另一个场景的坐标，或者 **到世界**，表示某个 World 的名称。玩家将出现在目标场景的出生点。
* **播放表情动作**：让玩家的头像执行一个默认头像动画（例如：挥手或鼓掌）。
* **播放自定义表情动作**：让玩家的头像执行一个来自上传到场景的文件的自定义动画。
* **显示文本**：在屏幕 UI 上显示文本，几秒后隐藏。适合提示、对话台词、通知等。
* **隐藏文本**：隐藏当前可能显示的任何 UI 文本。
* **开始延迟**：将同一物品的另一个操作延迟所需的若干秒。
* **停止延迟**：取消该物品上的所有延迟操作。
* **开始循环**：按给定间隔重复重播同一物品的一个操作。
* **停止循环**：取消该物品上的所有循环操作。
* **播放视频**：将视频作为材质播放在一个基本形状上。
* **停止视频**：停止当前播放的任何视频。
* **播放音频流**：播放一个音频流。
* **停止音频流**：停止当前播放的任何音频流。
* **克隆**：在指定位置复制一个物品。
* **生成实体**：在场景中创建一个物品的新副本，位置相对于执行该操作的物品。要生成的物品不需要先放置在场景中。请参见 [关于生成实体](#about-spawning-entities).
* **移除**：从场景中删除一个物品。
* **显示图片**：在 UI 上显示一张图片，可能只显示有限时间。也可以包含标题。
* **隐藏图片**：隐藏当前通过“Show Image”操作在 UI 中显示的任何图片。
* **伤害**：减少附近任何生命条的生命值。 *层* 属性可以决定它是否只作用于玩家身上的生命条，或作用于其他物品。
* **将玩家移动到此处**：将玩家的位置更改为此物品的位置。
* **放置到玩家身上**：将物品的位置更改为玩家的位置。
* **按玩家旋转**：将物品的旋转更改为玩家的旋转。
* **放置到摄像机**：将物品的位置更改为摄像机的位置。
* **按摄像机旋转**：将物品的旋转更改为摄像机的旋转。
* **设置位置**：将物品的位置更改为特定位置。可以是绝对位置，也可以是相对于当前的位置。
* **设置旋转**：将物品的旋转更改为特定旋转。可以是绝对值，也可以是相对于当前旋转的相对值。
* **设置缩放**：将物品的缩放更改为特定值。可以是绝对值，也可以是相对于当前缩放的相对值。
* **跟随玩家**：开始朝玩家位置的方向移动并转向。它会忽略途中的任何障碍。你可以设置速度，并让它只在某些轴上移动。最小距离决定它会接近玩家到什么程度。
* **停止跟随玩家**：停止“跟随玩家”操作。
* **随机操作**：每次调用随机操作时，此处列出的某个操作都会以相等概率随机执行。你可以列出属于该物品的任何操作。
* **批量操作**：每次调用批量操作时，此处列出的所有操作都会同时执行。你可以列出属于该物品的任何操作。
* **治疗玩家**：恢复玩家生命条的生命值。
* **玩家面向物品**：使玩家的头像转身面向该物品。
* **冻结玩家**：阻止玩家移动、跳跃或做表情动作。
* **解除玩家冻结**：在“冻结玩家”操作后恢复玩家的移动能力。
* **开灯**：打开物品的 **光源** 组件。
* **关灯**：关闭物品的 **光源** 组件。
* **修改灯光**：更改物品的 **光源** 组件属性，例如颜色或强度。
* **选择摄像机**：将玩家视角切换到一个 **虚拟摄像机**，可以在此物品上，也可以在其他实体上。
* **更改文本**：更改具有 **文本形状** 组件的物品文本。也可以更改字体大小和颜色。
* **停止补间**：停止该物品当前正在进行的任何补间运动。
* **滑动纹理**：让物品材质上的纹理沿给定方向持续滑动，用于流水或传送带等效果。
* **更改碰撞**：启用或禁用物品的碰撞体，既用于物理，也用于指针事件。
* **更改天空盒**：将场景的天空盒更改为固定时间，以自午夜起的秒数表示。
* **重置天空盒**：将场景的天空盒恢复为默认设置。
* **输出到控制台**：将消息打印到控制台，在开发场景时有助于调试。
* **删除**：从场景中移除该物品及其所有子级。

参见 [状态和条件逻辑](/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/states-and-conditions.md) ，了解与逻辑条件相关的其他操作，例如 **设置状态** 以及计数器操作。

该 **操作** 组件定义了可执行的操作，但如果不被触发，它们在场景中不会起作用。操作由一个 [触发器](#triggers)激活，既可以来自同一个智能物品，也可以来自另一个。

要向物品添加新操作，请点击 **添加新操作** 按钮，位于 Action 组件底部。然后为操作命名，选择类型，并填写该操作类型所需的任何附加字段。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-61a40f62dff724b5f7b8b0cda353467230c84880%2Fnew-action.png?alt=media\&token=4c85e615-b847-440b-96b0-532a6814071a)

### 触发器

该 **触发器** 组件定义了触发事件，当某个事件发生时，这些触发事件会激活操作。存在以下类型的触发事件：

* **点击时**：当玩家点击该物品时。请参见 [关于点击触发器](#about-click-triggers)
* **在输入操作时**：当玩家指向该物品时按下一个输入按钮。
* **全局点击时**：当玩家在任何地方点击指针时，无需指向该物品。
* **全局主键时**：当玩家在任何地方按下主键（E）时。
* **全局次键时**：当玩家在任何地方按下次键（F）时。
* **玩家进入区域**：当玩家进入一个区域时。请参见 [触发区域](/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/trigger-area.md)
* **玩家离开区域**：当玩家离开一个区域时。请参见 [触发区域](/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/trigger-area.md)
* **生成时**：当场景开始时，或物品在场景中生成时。请参见 [生成时触发](#trigger-on-spawn)
* **延迟结束时**：当一个 **开始延迟** 物品上的操作倒计时结束时。
* **循环时**：每次一个 **开始循环** 物品上的操作迭代时。
* **克隆时**：当物品通过一个 **克隆** 操作被克隆时，新副本会触发此触发器。
* **点击图片时**：当玩家点击由一个 **显示图片** 操作显示的图片时。
* **受伤时**：当物品受到来自一个 **伤害** 操作显示的图片时。
* **玩家被治疗时**：当玩家被一个 **治疗玩家** 操作显示的图片时。
* **每帧时**：场景每次 tick 时，每帧一次。请谨慎使用，因为由它触发的操作会非常频繁地运行。

参见 [状态和条件逻辑](/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/states-and-conditions.md) ，了解与逻辑条件相关的其他触发器，例如 **状态更改时**, **计数器更改时** 和 **补间结束时**.

要添加新的触发器，请点击 **添加新的触发事件** 按钮，位于 Trigger 组件底部。然后选择触发器类型、你要激活的实体以及该实体上的一个操作。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-2fc45edced2a86ac3f0b7f03057b38aec3d2f78b%2Fnew-trigger.png?alt=media\&token=4709b9ba-4088-4dbd-be35-f1180655a493)

{% hint style="info" %}
**📔 注意**：必须先在 [操作](#actions) 组件中定义一个操作，之后才能触发它。触发器只能影响具有 Actions 组件的实体。
{% endhint %}

## 关于播放动画

使用类型为 **播放动画** 的操作在智能物品的 3D 模型上运行动画。该动画需要已经作为 3D 模型文件的一部分存在。 **选择动画** 下拉菜单会显示 3D 模型中所有可用动画的列表。

该 **播放模式** 字段允许你选择动画是只播放一次，还是持续循环播放。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-0939df49ccfd7b60a07cf435a5244a13e5b30169%2Fplay-animation.png?alt=media\&token=f8bc7d76-87c8-49e2-b16a-11427ce865a1)

一旦创建了该操作，你就可以通过 [触发器](#triggers) 同一物品或任何其他物品的组件来激活它。

使用 **停止动画** 操作可停止该物品的所有动画，包括循环和非循环。

{% hint style="info" %}
**💡 提示**：要轻松查看 3D 模型的内容，看看它包含哪些动画以及它们的样子，一个很好的工具是 [Babylon Sandbox](https://sandbox.babylonjs.com/)。只需将 3D 模型文件拖入窗口即可。底部应会出现一个包含其动画列表的下拉菜单。
{% endhint %}

要了解更多关于动画以及如何将其作为 3D 模型的一部分创建，请参见 [动画](/creator/content-creator-zh/3d-jian-mo-yu-dong-hua/animations.md).

## 关于播放声音

使用类型为 **播放声音** 用于播放声音文件。只要已导入场景项目，你就可以播放任何声音文件。声音具有位置感，从物品所在位置传出，这意味着玩家越近，听起来越大声。

{% hint style="info" %}
**💡 提示**：你不必手动输入声音文件路径，可以将其拖入 **路径** 字段中，该字段位于 Scene Editor 底部的文件导航菜单。
{% endhint %}

使用 **播放模式** 字段可选择声音是播放一次，还是持续循环播放。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-c1b29ddbf0c123f9f4993f8d0eb1cf18ef458ebd%2Fplay-sound.png?alt=media\&token=57469f2f-14dd-4989-a3b2-7104f2ce8b2c)

一旦创建了该操作，你就可以通过 [触发器](#triggers) 同一物品或任何其他物品的组件来激活它。

使用 **停止声音** 操作可停止该物品播放的所有声音，包括循环和非循环。这也会停止来自 **AudioSource** 组件。

要让物品始终播放循环声音，例如环境音或音乐，使用 **AudioSource** 组件会更简单，而不是使用 Actions 和 Triggers。该组件只需要你提供文件路径，并勾选以下复选框 **开始播放** 和 **循环**.

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-6b18d4644fc30ae00402f4215163feae8e2ed4e5%2Faudiosource.png?alt=media\&token=3142795b-483a-4899-ac2a-82ad4280cbba)

{% hint style="info" %}
**📔 注意**：一个智能物品一次只能播放一种声音。调用第二个声音会中断当前正在播放的任何其他声音。这同样适用于 **AudioSource** 组件中的声音。如果你需要两种声音同时播放，可以考虑在同一位置添加一个不可见实体来承载一个 **播放声音** 操作显示的图片时。
{% endhint %}

参见 [声音](/creator/content-creator-zh/chang-jing-sdk7/3d-nei-rong-ji-chu/sounds.md) ，以了解更多关于在 Decentraland 中播放声音的信息。

## 移动、旋转或缩放

使用一个 **开始补间** 操作来改变 **位置**, **缩放**，或 **旋转**，使物品在一段时间内变化。所有 **开始补间** 操作都从物品的初始状态开始，并在一段时间内变化到结束状态。

位置补间可以是相对的或绝对的。绝对位置补间会将物品移动到相对于场景的固定位置。物品会从当前位置移动到该位置。如果它已经在那里，就不会看起来在移动。相对位置补间会将物品从当前位置移动一定距离，例如一个相对位置为 `1, 0, 0` 会让物品沿其当前朝向向前移动 1 米。如果你第二次运行该补间操作，物品会再向前移动一米。

旋转补间也可以是相对的或绝对的。相对旋转会叠加到物品当前的旋转上。绝对旋转补间会让物品面向相对于场景的特定方向。

使用 **持续时间** 字段，用于设置整个移动应持续多少秒。注意滑块最大到 100 秒，但如果需要，你也可以手动输入更大的数值。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-02dc2650178474b89c0aabbba8b12b917d09bfa1%2Ftweens.png?alt=media\&token=0fab61ce-88d8-442e-9b8c-2dd2062a2b01)

一旦创建了该操作，你就可以通过 [触发器](#triggers) 同一物品或任何其他物品的组件来激活它。

补间可以遵循不同的 **曲线类型** ，这些会影响随时间变化的速率。 **线性** 曲线（默认）表示变化速度从开始到结束保持恒定。可选择的选项很多，会绘制出不同形状的曲线，取决于开头和/或结尾是慢启动，及其程度。一个 **easeinexpo** 曲线开始时慢，结束时快，以指数方式加速；相反， **easeoutexpo** 曲线开始时快，结束时慢。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-707c9c44d39111002ea3b1c4b3000a8ab4122d67%2Feasing-functions.jpeg?alt=media\&token=4b2f29bf-0661-4831-94ea-61b9ffece4ea)

{% hint style="info" %}
**💡 提示**：尝试不同的运动曲线。差异通常很细微，但我们会潜意识地从事物的运动方式中解读信息，例如重量、摩擦，甚至个性。
{% endhint %}

使用 **补间结束时** 在 **触发器** 组件中的触发事件，在补间结束后激活一个操作。使用 [状态和条件逻辑](/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/states-and-conditions.md) 来描述悬浮平台的循环路径，使其持续在两个位置之间移动。

当物品执行补间时，这会影响物品的所有方面。例如，如果它改变缩放，就会同时改变其可见 3D 模型、不可见碰撞体几何体、文本大小等的缩放。如果物品有任何子级（左侧实体树中的嵌套对象），这些子实体也会受到补间影响。

{% hint style="info" %}
**📔 注意**：每个实体一次只能执行一个补间。例如，你不能让一个物品同时横向移动并旋转。作为一种变通方法，你可以使用父子实体。例如，你可以让一个不可见的父实体横向移动，而可见的子实体旋转。
{% endhint %}

## 关于生成实体

使用一个 **生成实体** 操作，在场景运行时创建一个物品的新副本。与 **克隆** 操作不同，你生成的物品不需要先放置在场景中。

### 使物品可生成

在物品可以被生成之前，它必须在你的项目文件中可用。要在不将其放入场景的情况下添加物品：

1. 在 **资源** 面板中，在目录或你的 **自定义项目**.
2. 右键单击该物品并选择 **添加到文件系统**.

这会将物品复制到你的项目中，以便稍后生成。它不会向场景添加任何可见内容。然后该物品会出现在 **源** 任意项的下拉菜单 **生成实体** 操作显示的图片时。

### 配置此操作

一个 **生成实体** 操作有两个字段：

* **源**：要生成的项目。请从添加到你项目文件中的项目里选择。
* **位置**：新副本出现时的 X、Y 和 Z 坐标，相对于执行该操作的项目。

如果你生成的项目本身也是智能项目，那么每个生成的副本都会独立运行自己的操作和触发器。

{% hint style="info" %}
**💡 提示**：如需改为从代码中生成项目，请参见 [复合体](/creator/content-creator-zh/chang-jing-sdk7/jia-gou/composites.md)。添加到你项目文件中的项目会以复合体形式存储，这与 SDK 的生成函数所使用的格式相同。
{% endhint %}

## 关于点击触发器

若要通过点击某个项目来触发操作，请创建一个 **点击时** 触发器。每当玩家点击该实体时，该操作都会被激活。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-89527969929c803b930910be068d3fdc569a36d6%2Fon_click.png?alt=media\&token=8d37a0f4-9ec7-4bd6-8ced-ea2ffdc6c9e8)

参见 [让任意项目变为智能项目](/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/make-any-item-smart.md#interactivity) 了解更多详情。

{% hint style="info" %}
**📔 注意**：使用自定义 3D 模型时，模型必须有一个不可见的碰撞体几何结构，才能被点击。参见 [碰撞体](/creator/content-creator-zh/chang-jing-sdk7/3d-nei-rong-ji-chu/colliders.md#pointer-blocking).

作为替代方案，你可以配置该 **GLTF** 项目的 **可见层** 的碰撞设置为 **指针**.

另一个替代方案是添加一个 **点击区域** 智能项目，用于绘制一个与要点击的项目重叠的立方体。点击区域智能项目是一个 [不可见项目](#invisible-items).
{% endhint %}

## 生成时触发

类型为 **生成时** 的触发器会在场景加载时激活一个操作。该操作不会等待玩家与项目交互，而是会立即运行。

例如，可用它让平台持续移动。使用一个 **生成时** 触发器来激活一个补间操作。然后使用 **状态更改时** 触发器让它在两个或更多位置之间持续移动。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-e7d8cc0fa522e04b35c949d38884c9134c597d0f%2Fon_spawn.png?alt=media\&token=3fd8eac1-0915-4f16-baba-bf1b5d0589db)

## 多人游戏

所有智能项目默认都是多人同步的。参见 [智能项目 - 基础](/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/smart-items.md) 了解更多详情。

你可以更改或微调这种多人同步行为，使其只同步项目的某些组件。

在项目的 **多人游戏** 组件中，勾选你想共享的组件。

例如，一扇门会共享其 `动画器` 这样所有人都能看到开门动画，其 `AudioSource` 这样所有人都能听到它的声音，以及其 `状态` 这样所有人都能知道它当前是打开还是关闭。门不会共享其 `可见性` 组件，因为门通常总是可见的。如果你包含用于切换其可见性的操作，最好也勾选这个组件，这样更改就会在所有玩家之间同步。

## 不可见项目

有些项目并不是要让玩家看到的，但在编辑场景时会显示出来，便于管理。这种情况适用于如 **环境氛围**, **触发区域**, **点击区域**等项目。

在高级模式下，这些项目有一个 **可见性** 组件设置为不可见。这个组件不会影响场景编辑器中项目的可见性，但任何设置为不可见的项目在预览运行时都不会被玩家看到。

## 另请参阅

* [智能项目 - 基础](/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/smart-items.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-advanced.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.
