---
title: 3. 使用 Build it Unity Plug-in 设计你的世界
slug: world-sdk-guide-ch/3-build-it-unity-plug-in
docTags: 
createdAt: 2025-04-22T03:23:28.110Z
---

# 1. 添加基础功能

:::hint{type="success"}
**跟着下方的视频操作，无需编写代码就能为世界添加各种功能！**

**视频支持多国语言字幕，请开启字幕后观看！**
:::

::embed[]{url="https://youtu.be/lqEmRnzLdGo?si=R51sWhdwIeqL27n_"}

:::BlockQuote
📌 **请在下方点击您想了解的物体！**
:::

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
[Interaction 物体](docId\:cQva_7zbfiPnMVlpY46Y5)

[设置出生点](docId\:cQva_7zbfiPnMVlpY46Y5)

[播放声音](docId\:cQva_7zbfiPnMVlpY46Y5)

[任务计时器](docId\:cQva_7zbfiPnMVlpY46Y5)

[生成随机数](docId\:cQva_7zbfiPnMVlpY46Y5)
:::

:::VerticalSplitItem
[Teleport 物体](docId\:cQva_7zbfiPnMVlpY46Y5)

[播放 BGM](docId\:cQva_7zbfiPnMVlpY46Y5)

[制作欢迎弹窗](docId\:cQva_7zbfiPnMVlpY46Y5)

[Reward Chest 物体](docId\:cQva_7zbfiPnMVlpY46Y5)

[DrawingCanvas 物体](docId\:cQva_7zbfiPnMVlpY46Y5)
:::
::::

## Interaction 物体

**Interaction** 物体可以让角色在用户点击图标时做出特定的手势（Gesture）。

- **Interaction\_bed**: 播放角色自然躺在床上的手势。
- **Interaction\_chair**: 播放角色自然坐在椅子上的手势。
- **Interaction\_dance**: 播放角色跳舞的手势。

您可以修改交互物体来将其应用于各种场景中。

- **更改 Animation Clip**: 替换子物体 `InteractionPoint` 的 Animation Clip 中应用的文件，角色就会在交互时做出不同的手势。
- **Is Snap Bone**: 角色的位置将固定在特定的 Bone 上。例如，如果 Bone 设置为 Foot，则在播放动画时，角色的脚会固定在 `InteractionPoint` 的位置。取消勾选此项，角色将脱离物体进行自由动作。
- **Body Bone**: 当勾选 `Is Snap Bone` 时，用于设置角色要固定在哪个 Bone 上。
- **更改物体外观**: 删除负责外观的子物体，并将地图上的其他物体放入完全相同的位置，即可更改其外观。
- **更改交互图标位置**: 如果更改了物体的外观，请相应地调整子物体 `IconPos` 的位置。

![](https://api.archbee.com/api/optimize/BtCo2cIFh9h5Mo0EP64o_-3mec8_PR9hKEIRR718TGI-20241030-020537.png)

## 设置出生点

使用 **SpawnPoint** 物体，可以设置世界开始时 ZEPETO 角色的初始生成位置。

- 如果 Scene 中没有 Spawn Object，ZEPETO 角色将在坐标 x=0, y=0, z=0 处生成。
- 如果存在多个 Spawn Object，ZEPETO 角色将随机选择其中一个位置并生成。

![](https://api.archbee.com/api/optimize/BtCo2cIFh9h5Mo0EP64o_-0uf2Ekf3584C0uEKtcuw_-20241030-020632.png)

## 播放声音

**SFX** 物体会在用户点击图标时播放指定的声音。将该物体放置在 Scene 中，并在 Inspector 中尝试更改设置。

- **AudioClip**: 可以在 Inspector 窗口中分配音频剪辑。请在此处应用 .mp3 或 .wav 格式的音频文件。
- **IconPos**: 可以调整用户点击按钮的位置。

![](https://api.archbee.com/api/optimize/BtCo2cIFh9h5Mo0EP64o_-81sQOudoacJnA4I72juDX-20241030-020522.png)

## 任务计时器

**Timer** 物体将显示计时 UI，当用户点击“开始（Start）”物体时，将开始记录时间。当用户点击“到达（Arrival）”物体时，计时 UI 将消失并显示成功信息。

您可以修改 Timer 物体的外观和交互按钮的位置，设计出符合您专属概念的风格。

- **更改物体外观**: 删除负责外观的子物体，并将地图上的其他物体放入完全相同的位置，即可更改外观。
- **更改交互图标位置**: 如果更改了物体的外观，请相应地调整子物体 `IconPos` 的位置。

![](https://api.archbee.com/api/optimize/BtCo2cIFh9h5Mo0EP64o_-SNz_WMgocucenDZLD8a93-20241030-020622.png)

## 生成随机数

使用 **Roulette** 物体，当用户点击图标时会生成一个随机数，并将结果显示在 ZEPETO 的聊天屏幕上。

- **设置数字范围**: 选中 Roulette 物体，可以在 Inspector 窗口中修改最小和最大数字。

您同样可以修改 Roulette 物体的外观和交互按钮的位置，设计出符合您概念的风格。

- **更改物体外观**: 删除负责外观的子物体，并将地图上的其他物体放入完全相同的位置，即可更改外观。
- **更改交互图标位置**: 如果更改了物体的外观，请相应地调整子物体 `IconPos` 的位置。

![](https://api.archbee.com/api/optimize/BtCo2cIFh9h5Mo0EP64o_-HGqhbeNLskUZw1pDRsFag-20241030-020553.png)

## Teleport 物体

**Teleport** 物体可以在用户点击图标时，将其瞬间传送到指定位置。

- **到达位置**: 您可以将子物体 `destination` 移动到所需的位置来设置传送终点。

您可以修改 Teleport 物体的外观和交互按钮的位置，使其符合您世界的概念。

- **更改物体外观**: 删除负责外观的子物体，并将地图上的其他物体放入完全相同的位置，即可更改外观。
- **更改交互图标位置**: 如果更改了物体的外观，请相应地调整子物体 `IconPos` 的位置。

![](https://api.archbee.com/api/optimize/BtCo2cIFh9h5Mo0EP64o_-PnTjfh9CrHEty2VM0Dcd_-20241030-020545.png)



## 播放 BGM

将 **BGM** 物体放置在 Scene 中即可播放背景音乐。请在一个 Scene 中仅放置一个。

- **AudioClip**: 可以在 Inspector 窗口中分配音频剪辑。请在此处应用 .mp3 或 .wav 格式的音频文件。

![](https://api.archbee.com/api/optimize/BtCo2cIFh9h5Mo0EP64o_-lfyL1e2pJSJ2QDeh_b3RH-20241030-020513.png)

点击屏幕右侧的 BGM 图标，用户可以自行开启或关闭背景音乐。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/I5T7Ac25AuC41H6_ONOS2_image.png)

## 制作欢迎弹窗

**Popup** 物体是玩家进入世界时弹出的窗口。点击弹窗内的按钮即可自动关闭窗口。

利用弹窗窗口介绍您的世界，或宣传您的专属活动吧！

:::hint{type="danger"}
**注意事项**

- Popup 窗口不是放置在地面上的物体形式。
- 它位于 UI 屏幕区域内，可以在 Game 视图中进行查看。
:::

从 Hierarchy 中选择 Popup 后，可以在 Inspector 中更改其属性。更改的内容可以在 Play 模式下确认。

- **Background Image**: 拖拽 2D Sprite 图像进行更改。
- **Message**: 可以更改消息文本。
- **Message Color**: 可以更改消息文本的颜色。
- **Message Shadow**: 可以开启/关闭消息文本的阴影效果。
- **Button Title**: 可以更改按钮文本。

![](https://api.archbee.com/api/optimize/BtCo2cIFh9h5Mo0EP64o_-LK33ZoHZSmXIA7jUT9L_Y-20241101-030457.png)

## Reward Chest 物体

将 **Reward Chest** 放置在您的世界中，游玩的玩家就可以根据活动内容获得 ZEM 或金币 (Coin)。

当用户进入存在 Reward Chest 的世界时，会弹出提示框告知该世界内 Reward Chest 的数量。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/4Hhp2HzazysI1dh9SbGeD_popup.gif)

尝试将 Reward Chest 藏在世界内的秘密地点，或是放在跑酷地图的终点，以此作为通关奖励送给玩家吧！

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/ArYdSd6c2plUU6Qc7sN5e_reward.gif "从 Reward Chest 获得奖励的画面")

- 运作逻辑
  - 世界创作者请将 Reward Chest 放置在世界中合适的位置。
    - 请不要把它放在太容易被发现的地方。
    - 如果奖励太容易获得，可能无法通过审核，或世界可能会在没有预告的情况下被下架。
    - 世界创作者也可以在自己的世界中获取奖励。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/d1wECjm8cjBHAzKCjBPsE_image.png)

- **Timeout** - 如果想通过 Reward Chest 增加玩家在世界中的停留时间，可以尝试在获得奖励前添加短暂的倒计时。
  - 在 Timeout 字段中输入倒计时时间（单位：秒）。默认值为 60 秒。
    - 如果输入 0，则无需倒计时，可立即获得奖励。
- **Activated Icon Color**
  - 在倒计时开始前，交互图标显示为白色。倒计时完成后，图标颜色将变更为在此处设置的颜色。
- **Group id**
  - 在具有相同 Group id 的箱子中，只会显示其中一个。
  - 如果指定了不同的 Group id，则每个组都会显示一个箱子。

:::hint{type="danger"}
**注意事项**

- ZEM/金币获取活动由 ZEPETO 官方运营，世界创作者无法自行设置。
- 每人从活动中可获得的奖励有上限限制，一旦达到上限，将无法继续获取奖励。
- 非活动期间，Reward Chest 将不会显示，且无法获得奖励。
:::



## DrawingCanvas 物体

**DrawingCanvas** 是一款可以让玩家在世界内自由画画的画布物体。

它自动支持**多人游戏同步**，您可以与连接到同一世界的其他用户一起实时画画并进行交流。

无论是打造一个与朋友们一起自由涂鸦玩耍的空间，还是策划一个你画我猜的问答游戏，请用您专属的创意点子在世界中灵活运用它吧！

![Drawing Canvas Object](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/IRJg7YRVf1f1s1M-W_Y6s_group-22.png)

- 请在 **Build it Asset Browser > Utility** 中选择 **DrawingCanvas** 物体。
- 请将其放置在 **Scene** 中的理想位置。

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/RoiD0DyCPLDJk591wt5VR_drawing.png" size="60" isUploading="false" width="418" height="378" darkWidth="418" darkHeight="378" alt="DrawingCanvas placed in Hierarchy" showCaption="false"}

- 请务必在 **Hierarchy** 窗口中确认 `DrawingCanvas` 物体是否已正确放置在 `Objects` 层级下方。

### 使用绘画功能

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/bqxarbp8s9waTz7B3IJAC_image-18.png" size="80" isUploading="false" width="893" height="498" darkWidth="893" darkHeight="498" alt="Drawing Canvas" showCaption="false"}

访问世界的用户靠近画布时，即可亲自体验以下各种绘画功能：

- **进入绘画模式**: 靠近画布时，会出现绘画 UI 图标。点击该图标即可开始绘画模式。
- **画笔与颜色设置**:
  - **调整画笔大小:** 可以使用左侧的 Bar 调整画笔的大小，并自由选择想要的颜色。
  - **调整颜色浓度:** 滑动右侧的 Bar 可以调整颜色的饱和度。
- **橡皮擦**: 利用橡皮擦工具可以轻松擦除并修改画错的部分。
- **油漆桶**: 用画笔画出线条封闭一个区域后，点击其内部，即可用所选颜色一次性填充该区域。
- **撤销与重做**: 可以返回到上一步，或恢复已撤销的操作。请注意，该功能最多仅支持 3 步。
- **全部清除**: 可以清空画布上绘制的所有内容。

:::hint{type="success"}
**多人游戏使用规则**

- **一个画布只能由一个人绘制：** 当某位玩家开始在画布上画画时，该画布将被该玩家占用。绘画图标会对其他玩家完全隐藏，因此其他人无法在已经有人作画的画布上继续添加内容。
- **您可以随时继续绘制自己的画布：** 在您作画的画布上，绘画图标会一直显示，您可以随时自由地继续作画。
- **退出房间后画布将被重置：** 如果画画的玩家退出房间 (Room)，画布上绘制的内容将会被清除。画布将恢复到空白状态，任何人都可以重新开始在上面画画。
- **推荐放置数量 (优化)：** 理论上画布的放置数量没有限制。但是，为了确保世界 (World) 运行流畅并做好优化，建议您在每个世界中放置不超过 10 个画布。
:::



# 2. NPC 物体

:::BlockQuote
📌 **请在下方点击您想了解的物体！**
:::

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
[基础 NPC 物体](docId\:cQva_7zbfiPnMVlpY46Y5)

[交互式 NPC 物体](docId\:cQva_7zbfiPnMVlpY46Y5)
:::

:::VerticalSplitItem
[设置 NPC Dialogue](docId\:cQva_7zbfiPnMVlpY46Y5)
:::
::::

## 基础 NPC 物体

输入 Zepeto ID 即可生成对应的 NPC 角色。将 NPC 物体放置在 Scene 中，并在 Inspector 中更改设置。

在编辑模式下 NPC 不会显示，当按下 Play 时 NPC 才会登场。



利用以下属性来配置您的 NPC 吧。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/zanv6Go2AsBVQpKyEjLIs_image.png "Basic NPC Object")

- **Zepeto ID**: 输入要使用的 ZEPETO 账号 ID。
- **Dialouge**
  - **Has Speech Bubble**: 开启后，玩家靠近 NPC 时会显示气泡框。
  - **Speech Bubble Text**: 输入 NPC 角色的气泡框文本。
    - 可以注册多条气泡文本。
    - 点击 + 按钮添加新文本，或点击 - 按钮删除现有文本。
  - **Randomize Dialogue**: 可以设置为随机顺序显示 NPC 的气泡文本。
    - 取消勾选该字段后，将从第一条 (Element 0) 开始按顺序输出文本。
  - **Speech Bubble Text Duration:&#x20;**&#x8BBE;置气泡文本在屏幕上显示的时间（单位：秒）。
  - **Speech Bubble Prefab:&#x20;**&#x6C14;泡框的 Prefab 设计。
  - **Speech Bubble Y Offset:&#x20;**&#x53EF;以以角色头部为基准，调整气泡框的 Y 轴（高度）位置。
- **Animations**
  - **Dialogue Animations:** 播放对话时将一同播放的角色动画列表。
    - 播放与 `Speech Bubble Text` 顺序一致的动画。
    - 如果当前对话顺序没有指定对应的动画，则默认播放列表中的第一个 (Element 0) 动画。
  - **Idle Animation:&#x20;**&#x5F53;禁用 `Enable Movement` 时，角色安静站立时播放的动画。
- **Movement**
  - **Enable Movement:&#x20;**&#x5F00;启后，角色会在指定区域内随机走动。
    - 如果想让 NPC 站着不动，请关闭此选项。
  - **Movement Area:&#x20;**&#x901A;过 Box Collider 组件指定 NPC 的活动区域。
    - 可以通过调整 Box Collider 的大小和位置来定制 NPC 的活动范围。
    - 在 Play 模式下，Box Collider 会消失隐藏。
  - **Min Idle Time:&#x20;**&#x79FB;动结束后，等待下一次移动的最短等待时间（秒）。
  - **Max Idle Time:&#x20;**&#x79FB;动结束后，等待下一次移动的最长等待时间（秒）。
- 使用示例

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/j1R6COt4PX1k8bdYSPk4U_image.png)

## 交互式 NPC 物体

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/O8PhoJvXt4of5z2eSyeqt_group-20.png)

**NPC\_v2 物体**新增了 **Dialogue (对话)** 功能，当玩家靠近并交互时，会进入正式的对话模式。

基础设置方法与“基础 NPC 物体”相同，但新增了一些对话专属属性。请在下方查看有哪些不同之处！

- **Zepeto ID, Animations, Movement** : 运作方式与基础 NPC 完全相同。

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/TkOZLEQSlSkXegfwMzGab_group-21.png" size="64" width="502" height="557" darkWidth="502" darkHeight="557" position="center" caption="NPC_v2 " showCaption="true"}

- **Npc Name** : 输入将在对话画面显示的 NPC 名称。
- **Dialogue Id** : 输入要应用对话文件的名称。

## 设置 NPC Dialogue

利用全新的 **NPC Dialogue System**，您可以为世界添加更有趣、更生动的 NPC！

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/1huH_rY1OkPfQxEnEhtC2_image.png)

不再局限于简单的单句对话，您可以根据玩家的选择实现**对话的连续性与分支**。

通过多语言支持 (Localization) 功能，可以打造沉浸式的对话系统，与全球玩家进行无缝交流。

### 1. 使用 Dialogue Helper

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/dZsdPGy7tfM7RbOgLUlZ3_image.png" size="46" width="536" height="634" position="center" caption="Dialogue Helper" darkWidth="536" darkHeight="634" showCaption="true"}

**Dialogue Helper** 是集中管理对话创建和 NPC 分配的中心面板。

- 选择顶部菜单的 **ZEPETO > Dialogue Helper** 打开该窗口。
- **NPC 字段** : 显示在 Scene 中当前选中的 NPC。只要选中带有 `ZepetoNPC` Component 的 GameObject 即可自动更新。（如果没有自动更新，请点击 **Refresh**）。

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/kEYc9XIBgjQJWtjfvpXRA_group-16.png" size="58" width="381" height="324" position="center" darkWidth="381" darkHeight="324" showCaption="false"}

- **Dialogue 字段** <font color="#0C121D">: </font>显示当前链接到 NPC 的对话文件。点击此处可以轻松选择并链接对话资产 (Node Graph Asset)。
- **Export 按钮** : 完成对话设置后，将数据导出以便在实际世界中正常运行的按钮。完成所有 NPC 台词输入后，**务必点击此按钮**才能最终生成对话资产。
- **Dialogue 文件夹** : 打开保存所有已创建对话资产 (Node Graph Asset) 的文件夹。
- **Create New** : 创建新的对话资产 (Node Graph Asset)。

:::hint{type="success"}
**提示：对话资产 (Node Graph Asset) 是什么？** 它是保存您所写台词内容的**对话文件**。
必须要拥有此文件，实际世界中的 NPC 才能说出您编写的台词。
:::

### 2. 使用 Dialogue Graph Editor (节点编辑器)

在 **Dialogue Helper** 中点击 **Create New** 或打开对话资产时，将出现 **Dialogue Graph Editor**。

该编辑器允许您通过可视化连接节点 (Node) 的方式，直观地设计复杂的对话流程。您可以在制作时清晰地看到对话如何根据选项产生分支。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/TMpPLc8fY8eMDeNEimZdQ_image.png "Dialogue Graph Editor")

**Dialogue Graph Editor 使用方法**

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/J3QwwBROtvRsFflZo3FRc_group-17.png "How to use Dialogue Graph Editor")

- **Minimap**: 当对话树变长、节点增多时，可助您一目了然地掌握整体结构。可以用来确认当前画面所在区域，或者快速将画面移动到所需位置。
- **Info**: 提供在 Dialogue Graph Editor 内所需的基本操作方法和快捷键提示。

**核心节点 (Node) 种类**

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/YGNKKmXDfMvx9fZ0LDV5z_image.png" size="46" width="498" height="706" position="center" caption="NPC Node" darkWidth="498" darkHeight="706" showCaption="true"}

- **NPC Node**: 输入 NPC 台词和玩家回复（选项）的核心节点。
  - **What the NPC says**: 在此输入 NPC 要说出的台词。
  - **Gesture**: 可以选择对话进行期间 NPC 展示的动画（动作）。
    - 常用的动作可以直接从下拉列表中选择应用。
      - 提供动作: **Idle**, **Talk**, **Laugh**, **Think**, **Ok**, **No**, **Hi**, **Bye**。

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/CrkEYK2q0yLLwv8nCVZTc_dialogue.png" size="78" width="674" height="428" darkWidth="674" darkHeight="428" position="center" caption="Custom Gesture" showCaption="true"}

:::Paragraph{listStyleType="disc" indent="3"}
如果您想使用列表中没有的专有手势，请选择 **Custom**，并在 **Custom Animation** 输入框中输入**完全相同的动画名称**。
:::

:::Paragraph{listStyleType="disc" listStart="2" indent="3"}
请务必将需要链接的角色动画文件放入 Unity 项目内的 `Resources/Animations/` **文件夹**中。
:::

:::hint{type="danger" indent="4"}
**注意事项**
使用 **Custom 手势时，如果输入的动画文件名有拼写错误，或者不存在该名称的文件，将弹出警告窗口，并且无法进行 Export**。
:::

- **Answer options**: 可以添加 1 到 3 个玩家可选的回答（选项）。
  - 通过将节点连接到每个回答上，您可以根据玩家的选择引出新的对话分支。
- **End Node**: 表示对话结束的点。当玩家选择了连接到此节点的选项时，对话将会结束。

***

**图形编辑与连接**

在对话画布中，您可以通过以下方式创建并连接节点：

- 在画布空白处**右键点击**以创建新节点 (**Create Node**)，或复制和删除现有节点。
- 拖拽选项 (Answer options) 右侧的 **Output 端口**并将其连接到下一节点的 **Input 端口**，即可完成对话流程 (Flow)。

:::hint{type="success"}
**TIPs**

导航画面的移动方法如下：

- **画面移动 (Navigation):**
- **鼠标中键** (点击滚轮)
- **鼠标左键 + Option/Alt (⌥) 键**

**选择与菜单 (Selection & Menu):**

- **单选 (Single selection):** 鼠标左键 (点击)
- **框选 (Rectangular selection):** 鼠标左键 (拖拽进行矩形选择)
- **打开节点菜单 (Open Node menu):** 鼠标右键 (点击)
:::

***

**多语言 (Localization) 支持设置**

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/X-pD1SQ59Yob7uCAi0Zmm_image.png" size="80" width="998" height="868" position="center" caption="Localization" darkWidth="998" darkHeight="868" showCaption="true"}

- **Inspector 窗口设置**: 点击生成的对话资产 (Node Graph Asset) ，并在 Inspector 窗口中勾选需要支持的语言（English, Korean, Japanese 等）。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/DkNL6q-yMPRz81r6VOrM8_group-8.png " Language Selector")

- **编辑器工具栏应用**: 在编辑器窗口左上角的 **Language Selector (语言选择器)** 中切换语言，即可直接为对应语言输入翻译文本。

### 3. 创建新的 NPC Dialogue

::::WorkflowBlock
:::WorkflowBlockItem
**创建对话**

- 在 **Dialogue Helper** 窗口中点击 **Create New**。

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/nq91ZFLWXZoqMPeeXDgx-_group-11.png" size="80" width="705" height="502" position="center" caption="Create New Dialogue" darkWidth="705" darkHeight="502" showCaption="true"}

- 在自动打开的 **Dialogue Editor** 中，自由编辑 NPC 台词和玩家回复（选项）以构建您的对话节点。
:::

:::WorkflowBlockItem
**指定 NPC**

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/dyS5ZDYKgep6QGzAV8DS8_group-13.png "Assign an NPC")

- 在 Hierarchy 窗口中点击要添加对话的 NPC 物体。
- 确认该物体在 Inspector 窗口中是否带有 `ZepetoNPC` Component。
- 将目标 NPC 拖入 Dialogue Helper 的 'NPC' 字段进行分配。
:::

:::WorkflowBlockItem
**分配对话并 Export**

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/YLATe_VGG3v3r2j3L9CWm_group-15.png "Assignment and Export")

- 点击 Dialogue Helper 的 **Dialogue 字段** 链接刚刚创建的对话资产。
- 应用完成后，点击 **Export** 按钮使其在游戏中正常运行。
:::

:::WorkflowBlockItem
**Inspector 最终检查**
在目标 NPC 的 Inspector 窗口（`ZepetoNPC` Component）中，检查设置是否正确。

- **NPC&#x20;**: 确认是否为对应的 NPC 资产。
- **Dialogue Id** : 确认所选对话资产的字符串与 Dialogue Id 是否一致。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/DCql1JOw-kbQHgSVAnpfA_group-10.png "Final Check")
:::
::::

:::hint{type="success"}
**TIPs**

- 相同的 NPC 对话资产可以轻松重用于多个 NPC。
- 为了确保编写的台词能正确反映在实际游戏中，修改对话后请**随时进行 Export**。
:::

:::hint{type="danger"}
**FAQ**

- **如果对话没有按设置运行:** 检查是否执行了 Export，并确认 Dialogue Panel 和 Dialogue Id 是否已准确填写在 Inspector 中。
- **如果工具中 NPC 信息未更新:** 请在 Dialogue Helper 窗口中点击 **Refresh** 按钮，或者在 Hierarchy 中重新点击选中 NPC。
:::

# 3. Vehicle 物体

## Vehicle

在世界中放置 Vehicle 主题的官方车辆，玩家即可乘坐并驾驶。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/AXa4Fg1gfAXhG7-xvhk_o-20250925-071339.png)

:::hint{type="danger"}
在同一个 Scene 中放置多辆相同的车辆时，如果名称相同可能会报错，因此请务必更改车辆名称。
:::

***

- 您可以为每辆车调整不同的速度。尝试利用速度各异的车辆制作赛车游戏吧！
  - 速度设置位置
    - 请前往 **Assets/BuilditTemplate/Themes/ZepetoAsset\_Vehicle/Settings** 文件夹。
    - 选择每辆车的脚本文件，即可在右侧的 Inspector 中修改数值。
  - 速度设置
    - `rotateAnglePerFrame`: 方向盘转动速度（转向灵敏度）
    - `accSpeedPerFrame`: 车辆加速快慢
    - `decreaseSpeedPerFrame`: 车辆减速（刹车）快慢
    - `magnification`: 车辆基础速度
    - `backMagnification`: 倒车时的速度
    - `boostMagnification`: 使用加速器时的速度
    - `boostDuration`: 加速器持续的时间

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/ugijVAXP2BoqfiCTBYRYT-20250926-055419.png)

**应用技巧**

- 您可以通过更换车辆下方负责外观的子物体，将其变成外观完全不同的载具。
  - 让玩家乘坐造型独特的物体四处游览吧！

![](https://app.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/dAaOKzaNHJGj1asY9Xopq-20250925-073225.png)

## vehicle\_vendor

将 Vehicle 主题内的 vehicle\_vendor 放置在世界中，玩家即可与 vendor 物体交互并召唤车辆。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/vR4Gk3N4-UedsM9E1tAt--20250925-073522.png)

- vendor 构成
  - `Booth`: 可设置 vendor 的外观/形状。
  - `Popup`: 玩家按下 vendor 按钮时，屏幕上弹出的选车窗口。
  - `SpawnLocation`: 可设置召唤出来的车辆将生成在何处。

## AdVehicleSpawner

放置 Utility 主题内的 AdVehicleSpawner，玩家观看广告后即可乘坐车辆。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/uqviCrOh2sXMSDFc7OacZ-20250925-073530.png)

- 注意事项
  - 广告奖励车辆仅在玩家驾驶期间保留。
  - 下车后，车辆将立即消失。
- Spawner 构成
  - `Vehicle Prefab`: 可设置提供哪种车辆作为广告奖励。
  - `Spawn Point`: 可设置观看广告后车辆生成的位置。
  - `Life Time`: 可设置车辆消失的时间。若将时间设为 '0秒'，玩家可以一直骑乘，直到下车为止。

# 4. 添加跑酷地图必备道具

:::hint{type="success"}
**跟着下方的视频操作，为您的跑酷地图(Jump Map)添加各种物体吧！**

**视频支持多国语言字幕，请开启字幕后观看！**
:::

::embed[]{url="https://youtu.be/MhQ4OnuvHKY"}

:::BlockQuote
📌 **请在下方点击您想了解的物体！**
:::

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
[使用移动平台](docId\:cQva_7zbfiPnMVlpY46Y5)

[定时炸弹](docId\:cQva_7zbfiPnMVlpY46Y5)

[Buff 踏板](docId\:cQva_7zbfiPnMVlpY46Y5)

[缩放踏板](docId\:cQva_7zbfiPnMVlpY46Y5)

[弹跳踏板](docId\:cQva_7zbfiPnMVlpY46Y5)

[闪烁踏板](docId\:cQva_7zbfiPnMVlpY46Y5)
:::

:::VerticalSplitItem
[传送带](docId\:cQva_7zbfiPnMVlpY46Y5)

[旋转踏板](docId\:cQva_7zbfiPnMVlpY46Y5)

[掉落踏板](docId\:cQva_7zbfiPnMVlpY46Y5)

[掉落踏板](docId\:cQva_7zbfiPnMVlpY46Y5)

[检查点](docId\:cQva_7zbfiPnMVlpY46Y5)
:::
::::

## 使用移动平台

**MovingPlatform** 物体是在跑酷地图（Jump Map）中非常实用的移动平台。角色可以踩在上面，且可以方便地设置其移动轨迹和速度。

它会自动进行多人游戏同步，因此房间内的所有玩家都能看到完全相同的移动画面。

可以在子物体 `MovingPlatformManager` 中设置属性。

- **Sync Type** : 同步设置属性。
  - Sync : 使用多人游戏同步。
  - NoneSync : 不使用同步。
- **Tween Type**: DOTween 往复运动的类型属性。
  - Circulation : 圆形循环。1 -> 2 -> 3 -> 4 -> 1 -> 2 -> 3 -> 4
  - Linear : 线性原路返回。1 -> 2 -> 3 -> 4 -> 3 -> 2 -> 1
  - TeleportFirstPoint : 到达终点时瞬间传送到起点并再次循环。1 -> 2 -> 3 -> 4 -> 1(teleport)
- **Loop Type**: 循环次数的类型属性。
  - Repeat : 持续循环。
  - JustOneWay : 单程运行一次。
  - JustOneRoundTrip : 往返运行一次。
- **Sync Extrapolation** : 考虑服务器延迟时间来额外计算修正位置。
  - 默认值 : true
- **Tween Position**
  - 输入踏板将要移动的 `localPosition` 坐标。踏板将按照 Tween Type 和输入的坐标顺序进行移动。
  - 为了形成起点和终点，至少需要设置 2 个以上的坐标。
- **Move Speed** : 物体的移动速度。

您可以修改 MovingPlatform 物体的外观来匹配您的概念设计。

- **更改物体外观**: 删除负责外观的子物体，并将地图上的其他物体放入完全相同的位置，即可更改外观。

::Image[]{src="https://api.archbee.com/api/optimize/BtCo2cIFh9h5Mo0EP64o_-UWN2-Nf9GSPizhqtxtm1o-20241030-020642.png" size="50" width="381" height="817" position="center" darkWidth="381" darkHeight="817" showCaption="false"}



## 定时炸弹

**BombTrap** 是角色触碰后会爆炸的陷阱物体。

如果在爆炸发生时角色位于爆炸范围内，角色将被传送到最近的检查点或 SpawnPoint 的位置。

- **Fuse Duration**: 炸弹点燃后至爆炸所需的时间（单位：秒）
- **Explosion Range**: 爆炸影响的范围
- **Show Timer**: 勾选该字段后，物体上方将显示距离爆炸的剩余时间。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/O-18MDFU1LpXJgoU_niD__group-2471.png)

## Buff 踏板

**BuffPanel** 是一种当角色踩在上面时，能够改变其移动速度和跳跃力的物体。

将其布置在地图各处，在特定区域增强或限制角色的能力，以创造丰富多样的游玩体验。

- **Walk Speed**: 角色在物体上步行的速度
- **Run Speed**: 角色在物体上奔跑的速度
- **Jump Power**: 角色在物体上的跳跃力

:::hint{type="success"}
**✏️ Tip**

- 如果想让角色走路或跑步的速度变快，请尝试输入 10、20 等正数；如果想变慢，请输入 -3 等负数。
- 尝试通过为不同区域设置不同的速度，应用在任务区域或解谜元素中吧！
:::

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/fC7gPycpV4LUMqnIEn16S_group-2472.png)

## 缩放踏板

**ScaleTrap** 是一个按固定周期不断放大和缩小的平台。

可放置在跑酷地图或考验时机的关卡中，打造不同难度的挑战。

- **Timeout**: 物体达到最大体积后保持该状态的时间（单位：秒）
- **Speed**: 物体放大和缩小的速度

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/Ljp2ymW5ssZd-T481JQPV_group-2473-1.png)

## 弹跳踏板

**SpringPlatform** 是一种能够每隔一段时间自动将角色向上弹起的平台，角色无需任何操作也会被弹起。

- **Jump Power**: 将角色向上弹起的力量
- **Delay Jump Timer**: 每次弹跳之间的间隔时间（单位：秒）

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/V5VGGBavTodD5Mpit2tSU_group-2474-1.png)

## 闪烁踏板

**BlinkingPlatform** 是一种在设定的时间周期内不断出现和消失的物体。

- **Visible Time**: 可更改 BlinkingPlatform 保持可见的时间（秒）。
- **Invisible Time**: 可更改 BlinkingPlatform 消失隐藏的时间（秒）。
- **更改物体外观:** 删除负责外观的子物体 `Model`，并将地图上的其他物体放在相同位置即可更改外观。如果更改了外观，请在 Inspector 窗口中调整 Collider 的大小和位置，使其与新外观相匹配。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/u9FjZnnStwwAYh7219bhr_image.png)

## 传送带

**Conveyor** 物体会让角色像站在真正的传送带上一样移动。

当角色站在 Conveyor 上时，将以设定的速度向前移动。

角色在 Conveyor 上顺着箭头方向移动时，行走或奔跑的速度会变快。

相反，逆着箭头方向移动时，行走或奔跑的速度会变慢。

- **Conveyor Speed**: 可更改传送带移动的速度。
- **更改物体外观:** 删除负责外观的子物体 `Model`，并将地图上的其他物体放在相同位置即可更改外观。如果更改了外观，请在 Inspector 窗口中调整 Collider 的大小和位置，使其与新外观相匹配。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/Cj3CkUWs-17yEKYDu7V0l_image.png)

## 旋转踏板

**(1) 角色随之旋转**

**RotatingPlatform** 是角色可以踩在上面的旋转平台。

- **x Speed**: 可更改 RotatingPlatform 沿 x 轴方向旋转的速度。
- **y Speed**: 可更改 RotatingPlatform 沿 y 轴方向旋转的速度。
- **z Speed**: 可更改 RotatingPlatform 沿 z 轴方向旋转的速度。
- **更改物体外观:** 删除负责外观的子物体 `Model`，并将地图上的其他物体放在相同位置即可更改外观。如果更改了外观，请在 Inspector 窗口中调整 Collider 的大小和位置，使其与新外观相匹配。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/pnrBU4TQkPcLBCbmxE_JT_image.png)

**(2) 角色不转，仅物体旋转**

**Rotator** 是一个单纯在视觉上旋转的物体。因为角色站在上面时无法带动角色转动，主要用于装饰用途。

- **x Speed**: 可更改 Rotator 沿 x 轴方向旋转的速度。
- **y Speed**: 可更改 Rotator 沿 y 轴方向旋转的速度。
- **z Speed**: 可更改 Rotator 沿 z 轴方向旋转的速度。
- **更改物体外观:** 删除负责外观的子物体 `Model`，并将地图上的其他物体放在相同位置即可更改外观。如果更改了外观，请在 Inspector 窗口中调整 Collider 的大小和位置，使其与新外观相匹配。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/ULA7kKiMecYUB_puPCWMx_image.png)

## 掉落踏板

**FallingPlatform** 是在与角色接触一定时间后向下掉落的物体。

- **Duration**: 接触角色后保持不掉落的时间（秒）。
- **Falling Speed**: 可更改 FallingPlatform 掉落的速度。
- **Falling Distance**: 可更改 FallingPlatform 掉落的距离。
- **更改物体外观:** 删除负责外观的子物体 `Model`，并将地图上的其他物体放在相同位置即可更改外观。如果更改了外观，请在 Inspector 窗口中调整 Collider 的大小和位置，使其与新外观相匹配。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/7znmU_0kgvIchVbae5KOY_image.png)

## 触死陷阱

### (1) 基础陷阱

**TrapObj** 在角色触碰时会将角色传送。

如果存在已激活的 CheckpointPlatform，则传送到最近的 Checkpoint 位置；如果没有，则传送到 SpawnPoint。

- **更改物体外观:** 删除负责外观的子物体 `Model`，并将地图上的其他物体放在相同位置即可更改外观。如果更改了外观，请在 Inspector 窗口中调整 Collider 的大小和位置，使其与新外观相匹配。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/pyAZf8zPqLzKRPp34q-zt_image.png)

### (2) 移动陷阱

**TrapMovingCube** 在 `startPoint` 和 `endPoint` 之间进行往复运动，并在角色触碰时将角色传送。

如果存在已激活的 CheckpointPlatform，则传送到最近的 Checkpoint 位置；如果没有，则传送到 SpawnPoint。

- **startPoint**: 在 Hierarchy 窗口中选中 `startPoint` 物体并移动其位置，即可更改移动路径的起始点。
- **endPoint**: 在 Hierarchy 窗口中选中 `endPoint` 物体并移动其位置，即可更改移动路径的终点。
- **Speed**: 在 Inspector 窗口中更改移动速度。
- **更改物体外观:** 删除负责外观的子物体 `Model`，并将地图上的其他物体放在相同位置即可更改外观。如果更改了外观，请在 Inspector 窗口中调整 Collider 的大小和位置，使其与新外观相匹配。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/IwCJIOIRZHx4kZOBYZ0ut_image.png)

### (3) 钟摆陷阱

**TrapPendulum** 是像时钟摆锤一样左右摇摆的物体。

- **Amplitude**: 可更改 TrapPendulum 摆动的高度（振幅）。
- **Speed**: 可更改 TrapPendulum 摇摆的速度。
- **Enable Kill**: 勾选此字段时，当角色接触到 TrapPendulum 底部的球体时将其传送。如果存在已激活的 CheckpointPlatform，则传送到最近的 Checkpoint 位置；如果没有，则传送到 SpawnPoint。
- **更改物体外观:** 删除负责外观的子物体 `Model`，并将地图上的其他物体放在相同位置即可更改外观。如果更改了外观，请在 Inspector 窗口中调整 Collider 的大小和位置，使其与新外观相匹配。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/K1KKPX_B2wcUJlmgN5XaF_image.png)

### (4) 旋转陷阱 (横向)

**TrapRotatingHorizontal** 是横向旋转的物体。角色碰到白色杆子时将被传送。

如果存在已激活的 CheckpointPlatform，则传送到最近的 Checkpoint 位置；如果没有，则传送到 SpawnPoint。

- **Rotation Speed**: 可更改 TrapRotatingHorizontal 旋转的速度。
- **更改物体外观:** 删除负责外观的子物体 `Model`，并将地图上的其他物体放在相同位置即可更改外观。如果更改了外观，请在 Inspector 窗口中调整 Collider 的大小和位置，使其与新外观相匹配。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/piVKL9o6Fy-lHAGfA0FXa_image.png)

### (5) 旋转陷阱 (纵向)

**TrapRotatingVertical** 是纵向旋转的物体。角色碰到白色杆子时将被传送。

如果存在已激活的 CheckpointPlatform，则传送到最近的 Checkpoint 位置；如果没有，则传送到 SpawnPoint。

- **Rotation Speed**: 可更改 TrapRotatingVertical 旋转的速度。
- **更改物体外观:** 删除负责外观的子物体 `Model`，并将地图上的其他物体放在相同位置即可更改外观。如果更改了外观，请在 Inspector 窗口中调整 Collider 的大小和位置，使其与新外观相匹配。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/B46WMGHxH34OtDskfo6oC_image.png)

### (6) 突刺陷阱

**SpikeTrap** 是根据设定周期刺出尖刺的障碍物。

将其放置在地图中，增加紧张感吧。

- **Spike Active Duration** : 尖刺刺出并停留的时间
- **Spike Cooldown Duration** : 尖刺缩回冷却的时间

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/D-mZzojM12t1IQufTMDcH_image.png)

- **更改物体外观:** 若要更改踏板形状，只需删除 `Plate` 下方的外观物体，并添加所需的外观物体即可。
  - 建议不要修改其他的组成元素。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/c4z09GPNbn7_uhFCYkjQY_image.png)

## 检查点

**CheckpointPlatform** 是触碰后设为复活点（检查点）的踏板。

在制作跑酷地图时，请将其布置在各关卡之间。

- **Index:&#x20;**&#x51B3;定 CheckpointPlatform 激活顺序的字段。
  - 默认 Index 值为 **0**。必须输入大于 0 的值，如果输入负数将无法正常工作。
  - 角色会在访问过的 CheckpointPlatform 中，在 **Index 值最大的 CheckpointPlatform 位置复活**。
    - 利用 Index 可以防止玩家通关高级别后退回低级别区域时，复活点被降级覆盖。
  - CheckpointPlatform 在角色**首次访问时被激活**。如果 Index 值相同，角色将在**最近激活的 CheckpointPlatform 位置**复活。
    - 示例）如果角色按顺序访问检查点 1 -> 2 -> 3 -> 2，角色将在检查点 3（最近最新激活的检查点）复活，而不是刚走回头路摸到的检查点 2。
- **更改物体外观:** 删除负责外观的子物体 `Model`，并将地图上的其他物体放在相同位置即可更改外观。如果更改了外观，请在 Inspector 窗口中调整 Collider 的大小和位置，使其与新外观相匹配。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/kBcUImzMiT-GCxJT6262I_image.png)

# 5. 使用鱿鱼主题

:::BlockQuote
📌 **请在下方点击您想了解的物体！**
:::

::::VerticalSplit{layout="left"}
:::VerticalSplitItem
[永熙 (Yonghee) 物体](docId\:cQva_7zbfiPnMVlpY46Y5)

[投票功能](docId\:cQva_7zbfiPnMVlpY46Y5)
:::

:::VerticalSplitItem
[倒计时计时器](docId\:cQva_7zbfiPnMVlpY46Y5)

[易碎玻璃踏板](docId\:cQva_7zbfiPnMVlpY46Y5)
:::
::::

## 永熙 (Yonghee) 物体

**yonghee** 是一款放置在世界中即可游玩简单迷你游戏（123木头人）的物体。

- 基础运行方式
  - 放置物体后按下 Play，它将自动运行。
  - 当永熙角色看向您时如果移动，会发射激光并倒下。（仅会触发倒下的动画效果）。
  - 可以在 Inspector 中设置永熙角色回头等待的时间。
- **Min Counting Time**: 永熙背过身不看的最短时间
- **Max Counting Time**: 永熙背过身不看的最长时间
- **Paused**: 开启/关闭永熙的运行。如果只想将其作为没有功能的装饰物体使用，请在放置前将 Paused 设置为 ON。

![](https://api.archbee.com/api/optimize/DG7AL2Zd4MVK-IODE4H3u-v2ozUjcZPA8lj2IDzOrXu-20241226-051654.png)

## 投票功能

**voting** 是可以分别计算站在 O 区域和 X 区域人数的物体。

将其放在地上即可直接使用，无需额外设置。

- O、X 区域地板的 Collider 范围就是识别计数的区域。可通过调整尺寸来修改识别范围。

![](https://api.archbee.com/api/optimize/DG7AL2Zd4MVK-IODE4H3u-KVXOtjdTzjSP4D7E4_iSE-20241226-052157.png)

## 倒计时计时器

**timedisplay** 是用于倒计时显示的物体。

默认设置为倒计时 5 分钟。

可以在 Inspector 中自由设置倒计时时间。

- **MaxValue**: 倒计时开始时间（秒）
- **MinValue**: 倒计时结束时间（秒）
- **Interval**: 倒计时时数字减少的间隔（秒）

![](https://api.archbee.com/api/optimize/DG7AL2Zd4MVK-IODE4H3u-qLIvLUD00KwfLvV_contG-20241226-052613.png)

## 易碎玻璃踏板

**breakable\_glass** 是踩上或触碰就会消失的踏板。

可作为跑酷地图的障碍物使用。

- **Is Breakable**: 开启/关闭触碰破碎的属性。只有设为 ON 时，以下属性才会生效。
- **Auto Reset Delay**: 触碰破碎后，经过 **Auto Reset Delay** 中设定的时间后将自动重置生成。
- **Has Auto Reset**: 如果不想让踏板再次生成，请将 **Has Auto Reset** 设为 OFF。

![](https://api.archbee.com/api/optimize/DG7AL2Zd4MVK-IODE4H3u-jRGPJ5Yb-LDn6fPfPbX3N-20241226-053025.png)

