> 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/gou-jian/components.md).

# 实体和组件

了解一个物品的组件如何工作

通过点击画布或实体树中的项目来选择它。然后你会在屏幕右侧的属性面板中看到其组件。不同项目有不同的组件，每个组件都会显示特定设置。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-c9c570da87ad3e8ba629f2a0c0b64ea2587a34ac%2Fcomponents-in-editor.png?alt=media\&token=916b4ef9-6a25-4cc9-beaa-553b6ebed067)

大多数非交互式项目具有以下组件：

* **Transform**：设置项目的位置、旋转和缩放。如果该项目是另一个项目的子项， [实体树](/creator/content-creator-zh/chang-jing-bian-ji-qi/ru-men/scene-editor-essentials.md#the-entity-tree)这些值将相对于其父项的值。
* **GLTF**：要加载的 3D 模型。它包含此 3D 模型文件的本地路径。它还包含一些用于配置 [碰撞体](/creator/content-creator-zh/chang-jing-sdk7/3d-nei-rong-ji-chu/colliders.md#colliders-on-3d-models) 模型上的设置。

你场景中的项目都是 **实体**实体。场景中的一切都是实体，它们是场景的基本构建块。项目是至少具有位置和可见形状的实体。

## 添加组件

要向任何实体添加组件，请点击 **+** 属性选项卡顶部的 + 号，并从列表中选择该组件。请参见 [让任意项目变为智能项目](/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/make-any-item-smart.md)

![在实体上打开的添加组件菜单，会列出按 3D 内容和交互分组的组件。](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-6a35142910f0343c27340673c61d75ed5f75f05a%2Fadd-component.png?alt=media\&token=a3fb4e60-b24d-4e2a-b9b8-45d7db23aee0)

你可以通过点击其右侧的三点图标并选择 **删除组件**.

## 从零创建实体

要创建一个全新的实体，请右键单击根 **场景** 实体树中的实体，或任意其他实体，然后选择 **添加子项**

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-46376236db2643c1394a6498cbbbec8519b7fe72%2Fnew-entity.png?alt=media\&token=ad2ff878-123d-4a00-a5bf-1ebf5b718d00)

这会创建一个空实体，只带有一个 **Transform** 组件。新实体是你点击的父实体的子实体。然后你可以继续为它添加你想要的任何其他组件，把它塑造成你想要的任何东西。

## 可用组件

以下组件可以通过场景编辑器 UI 添加到任何实体：

* **网格渲染器**：基于基本形状（立方体、平面、圆柱体或球体）为实体赋予可见形状。
* **Mesh Collider**：为实体赋予一个不可见的碰撞体几何体。这可以阻止玩家穿过该项目，和/或使其可以被点击。请参见 [碰撞体](/creator/content-creator-zh/chang-jing-sdk7/3d-nei-rong-ji-chu/colliders.md).
* **材质**：定义具有 **网格渲染器** 组件的实体的颜色、纹理和其他属性。请参见 [材质](/creator/content-creator-zh/chang-jing-sdk7/3d-nei-rong-ji-chu/materials.md).

  <div data-gb-custom-block data-tag="hint" data-style="warning" class="hint hint-warning"><p>**📔 注意**：该项目必须具有 **网格渲染器** 组件。它不会影响具有 **GLTF** 可见形状的项目。</p></div>
* **可见性**：定义实体是否不可见。
* **光源**：向实体添加一个光源。
* **替换材质**：替换具有 **GLTF** 组件的实体的材质。如果 3D 模型有多个网格，你可以分别替换每个网格的材质。
* **音频源**：在实体所在位置播放声音文件中的声音。请参见 [声音](/creator/content-creator-zh/chang-jing-sdk7/3d-nei-rong-ji-chu/sounds.md).
* **文本形状**：在 3D 空间中显示文本。请参见 [文本](/creator/content-creator-zh/chang-jing-sdk7/3d-nei-rong-ji-chu/text.md).
* **指针事件**：将实体标记为可点击，并显示悬停提示。

{% hint style="warning" %}
**📔 注意**：该 **指针事件** 该组件仅提供反馈。要在与实体交互时执行动作，请参见 [让任意项目变为智能项目](/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/make-any-item-smart.md)
{% endhint %}

* **多人游戏**：共享对实体发生的任何更改，以便场景中的所有玩家也能看到。它可以配置为仅共享某些组件上的更改。请参见 [无服务器多人](/creator/content-creator-zh/chang-jing-sdk7/lian-wang/serverless-multiplayer.md#mark-an-entity-as-synced) 了解更多详情。
* **动画器**：控制具有 **GLTF** 3D 模型的实体上的动画播放。请参见 [3D 模型动画](/creator/content-creator-zh/chang-jing-sdk7/3d-nei-rong-ji-chu/3d-model-animations.md).
* **补间**：使实体在一段时间内逐渐移动、旋转或缩放。请参见 [移动实体](/creator/content-creator-zh/chang-jing-sdk7/3d-nei-rong-ji-chu/move-entities.md).
* **广告牌**：使实体始终旋转以面对玩家。请参见 [面向用户](/creator/content-creator-zh/chang-jing-sdk7/3d-nei-rong-ji-chu/entity-positioning.md#face-the-user).
* **头像附加**：将实体附加到玩家的头像上，使其跟随玩家移动。请参见 [将实体附加到头像](/creator/content-creator-zh/chang-jing-sdk7/3d-nei-rong-ji-chu/entity-positioning.md#attach-an-entity-to-an-avatar).
* **视频播放器**：在场景中播放视频，可通过其 **材质**。参见 [视频播放](/creator/content-creator-zh/chang-jing-sdk7/mei-ti/video-playing.md).
* **NFT 形状**：在一个框中显示 NFT 的图像。请参见 [显示 NFT](/creator/content-creator-zh/chang-jing-bian-ji-qi/gou-jian/nfts.md).
* **粒子系统**：从实体所在位置发射粒子，用于烟雾、火焰或闪光等效果。请参见 [粒子系统](/creator/content-creator-zh/chang-jing-sdk7/3d-nei-rong-ji-chu/particle-system.md).
* **虚拟摄像机**：定义一个自定义摄像机角度，场景可以切换玩家视图到该角度。请参见 [摄像机](/creator/content-creator-zh/chang-jing-sdk7/3d-nei-rong-ji-chu/camera.md).
* **头像修改区域**：更改位于以该实体为中心的区域内的玩家头像行为或外观。实体的缩放决定该区域的大小。请参见 [修改区域](/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).
* **脚本**：向实体附加一个自定义代码模块，并带有可从 UI 配置的参数。请参见 [脚本组件](/creator/content-creator-zh/chang-jing-bian-ji-qi/shi-yong-dai-ma-kuo-zhan/script-component.md).

{% hint style="warning" %}
**📔 注意**：SDK 中还存在其他组件，目前只能通过代码使用。你也可以通过代码创建自己的 [自定义组件](/creator/content-creator-zh/chang-jing-sdk7/jia-gou/custom-components.md) 通过代码实现，这些不会有 UI 表现形式，但可以通过代码添加和编辑。

参见 [与代码结合](/creator/content-creator-zh/chang-jing-bian-ji-qi/shi-yong-dai-ma-kuo-zhan/overview.md) ，了解如何编辑场景代码。

另外请注意，一个实体只能持有 **一个** 每种组件中的一个。无法为实体中已存在的组件再分配第二个实例。例如，你不能向同一个实体添加两个 **操作** 组件。
{% endhint %}

## 值得了解的设置

大多数组件字段与上面链接的 SDK 页面一一对应。有几个很容易被忽略，或者其行为并不明显。

### 音频源

**音高** 会乘以播放速度，并随之改变音高。 `1` 以原始速度播放， `2` 以两倍速度播放（升高一个八度）， `0.5` 以半速播放（降低一个八度）。它必须大于 0，默认值为 `1`.

### 视频播放器

* **播放速度**：与音高类似，但用于视频。 `1` 为正常速度。默认值请留空。
* **开始位置（秒）**：视频开始播放时的起始位置。留空则从头开始。
* **空间音频**：开启 **空间** ，使视频声音具有位置感，这样当玩家走远时声音会逐渐减弱。 **空间距离** 然后设置范围：音频会以最大音量播放直至 **最小** 米处，并在 **最大** 米处渐弱至静音。默认值为 0 和 60。

关闭 **空间** 时，音频在场景中的任何位置都以相同音量播放。

### 文本形状

* **大小**：文本框的宽度（**W**）和高度（**H**），单位为米。对齐和内边距以此框为基准测量。
* **文本换行**：当文本达到在 **大小**中设置的宽度时，会将其换到新的一行。关闭时，文本会保持在同一行。

### 材质

* **颜色透明度**：主 **颜色**的透明度，范围从 0 到 1。在 **透明度模式** 为 **不透明**.
* **Alpha 测试**：像素变为不可见的截断点。只有在 **透明度模式** 为 **Alpha 测试** 或 **Alpha 测试与混合**时才会显示，因为只有这些模式会使用它。
* **无**：颜色下拉菜单现在提供一个 **无** 可清除颜色的选项，而纹理 **类型** 下拉菜单提供 **无** 用于移除纹理。

### 粒子系统

该 **旋转** 部分控制粒子的朝向以及它们如何旋转：

* **广告牌**：每个粒子始终面向摄像机。默认开启。对于应在 3D 中自由翻滚的粒子，请将其关闭。
* **面向运动方向**：每个粒子一开始都会指向它的移动方向，就像箭头一样。
* **初始旋转（度）**：每个粒子出生时的旋转方式，按轴分别计算。
* **随时间旋转（度/秒）**：每个粒子的旋转速度，按轴分别计算。每个轴的数值上限为 180。

当 **使用纹理** 开启时，会出现另外两个下拉菜单：

* **包裹模式**：纹理在边缘之外的行为方式。 **Clamp** （默认）会拉伸边缘像素， **Repeat** 会平铺， **Mirror** 会以交替翻转的方式平铺。
* **过滤模式**：如何对纹理进行采样。 **Bilinear** （默认）较为平滑， **Point** 会呈像素化，适合像素艺术， **Trilinear** 会在 mipmap 级别之间进行平滑。

### 补间

**补间类型** 提供五种模式：

| 模式                           | 作用                   |
| ---------------------------- | -------------------- |
| **移动项目**, **旋转项目**, **缩放项目** | 在 **持续时间**.          |
| **持续移动**                     | 以恒定速度沿固定方向持续移动，永远如此。 |
| **持续旋转**                     | 以恒定速度围绕固定轴持续旋转，永远如此。 |

这两种持续模式没有结束值，因此 **开始**, **结束**, **持续时间**, **缓动函数** 和 **循环** 会对它们隐藏。取而代之的是：

* **持续移动**：一个 **方向** 向量，以及一个 **速度（米/秒）**。使用长度为 1 的方向向量，这样速度才会正好是每秒多少米。负速度则会向相反方向移动。
* **持续旋转**：一个 **旋转轴（度）** 以及一个 **速度（度/秒）**。只关心轴的方向，不关心角度大小。

切换 **补间类型** 会把这些值重置为新模式下合理的默认值，因为在每种模式下这些数字的含义不同。

该 **播放** 复选框（之前称为“自动开始”）决定场景加载后是否立即运行该补间。关闭时，补间会在起始值处暂停创建，只有当你的代码将其设为播放后才会运行。

{% hint style="info" %}
**💡 提示**：某些组件属性只能通过代码设置。在检查器中编辑实体不再会丢弃它们，因此你可以先在场景代码中设置一个值，然后继续使用编辑器编辑该实体，而不会丢失该值。
{% endhint %}

## 智能项目

[智能项目](/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/smart-items.md) 还可以包含控制实体交互性的特殊组件。通常是：

* **操作**：列出该项目可以执行的所有动作。
* **触发器**：决定何时执行 Actions 组件中的动作。
* **States**：跟踪项目当前状态。该状态可用于条件逻辑，仅在项目处于某些状态时触发某些动作。
* **Counter**：跟踪一个计数器。该计数器可用于条件逻辑，仅在计数器的值等于/大于/小于某个给定值时触发某些动作。

参见 [智能项目进阶](/creator/content-creator-zh/chang-jing-bian-ji-qi/jiao-hu-xing/smart-items-advanced.md) 了解更多详情。

## 关于实体和组件

场景中的一切都是实体。场景中的所有项目和智能项目都是实体。

实体的所有特性都由其组件决定。它们定义实体是什么、它在哪里、它如何发声，以及它如何行为。例如， **Transform** 组件存储实体的坐标、旋转和缩放。 **MeshRenderer** 组件会给实体一个可见形状（例如立方体或球体），而 **材质** 组件会给实体一个颜色或纹理。

组件上的值会随着时间而变化。在场景编辑器中，你可以为这些组件配置初始值。但一旦场景运行，玩家的动作或时间的流逝都可能改变这些值。

例如，一个移动平台智能项目有一个初始位置，你可以通过它的 **Transform** 组件来设置；但在该项目的动作让它移动之后，它的 **Transform** 将会持有不同的值。

参见 [实体和组件](/creator/content-creator-zh/chang-jing-sdk7/jia-gou/entities-components.md) 以深入了解这一概念以及它们在 Decentraland 场景中的使用方式。


---

# 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/gou-jian/components.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.
