For the complete documentation index, see llms.txt. This page is also available as Markdown.

叙事设计快速入门

为 Convai 角色添加 Narrative Design Manager 和碰撞触发器,并在 Play Mode 中确认章节切换——无需代码。

本指南将带你走完最快速的流程,完成一个可工作的 Narrative Design 设置。到最后,角色会在玩家穿过触发区域时对章节变更作出反应——全程都通过检视器完成,无需任何代码。

先决条件

开始前,请确认:

1

添加 Narrative Design Manager

选择包含你的 ConvaiCharacter 组件的 GameObject。在检视器中,点击 添加组件 并搜索 叙事设计管理器 (路径: Convai > Narrative Design Manager).

管理器会自动检测 ConvaiCharacter 同一 GameObject 上的……。如果你的角色位于另一个 GameObject 中,请将其拖到 角色 字段中。

ConvaiNarrativeDesignManager added to the character GameObject in the Unity Inspector
角色 GameObject 上的 ConvaiNarrativeDesignManager 中。
2

从仪表板同步章节

在管理器的检视器中,点击 与后端同步。SDK 会获取你的叙事章节并填充 叙事章节 列表。每一项都会显示来自仪表板的章节名称。

如果列表仍为空,请确认已在 ConvaiCharacter 上设置角色 ID,并且你的 API 密钥有效——请参阅 配置 API 密钥。该 上一次获取错误 字段会在出错时显示具体错误。

Narrative Sections list populated after clicking Sync with Backend
成功同步后的 Narrative Sections 列表。
3

连接章节事件

展开 叙事章节 列表中的第一个章节条目。你会看到两个 Unity 事件: 章节开始时 是位于 章节结束时.

单击 + on 章节开始时,将任意 GameObject 拖到对象字段中,并选择要调用的方法。用于测试的最简单选项是 NarrativeDesignDebugLogger 下面的辅助工具——将其添加到任意 GameObject,将该 GameObject 拖到监听器字段,然后选择 NarrativeDesignDebugLogger.LogSectionStarted.

NarrativeDesignDebugLogger.cs
using UnityEngine;

public class NarrativeDesignDebugLogger : MonoBehaviour
{
    [SerializeField] private string _label = "章节";

    /// 连接到 UnitySectionEventConfig.OnSectionStart Unity 事件。
    public void LogSectionStarted()
    {
        Debug.Log($"[NarrativeDesign] {_label} 已开始。", this);
    }

    /// 连接到 ConvaiNarrativeDesignManager.OnAnySectionChanged Unity 事件。
    /// 接收新的章节 ID,类型为字符串。
    public void LogSectionChanged(string sectionId)
    {
        Debug.Log($"[NarrativeDesign] 章节已更改 → {sectionId}", this);
    }
}
On Section Start Unity Event wired to a debug logger component
已将 On Section Start 连接到 NarrativeDesignDebugLogger。
4

添加 Narrative Design Trigger

在场景中创建一个新的空 GameObject,并将其放置在玩家会经过的位置。点击 添加组件 并搜索 Convai 叙事设计触发器 (路径: Convai > Convai Narrative Design Trigger).

将你的 ConvaiCharacter角色 字段中,或者留空以让 自动查找角色 自动定位它。

ConvaiNarrativeDesignTrigger added to an empty GameObject in the scene
位于世界空间触发 GameObject 上的 ConvaiNarrativeDesignTrigger。
5

获取并选择一个触发器

在 Trigger 组件的检视器中,点击 获取 以从仪表板加载命名触发器。将出现下拉菜单——选择应将图谱推进到第一个章节的触发器。

Trigger Selection dropdown populated after clicking Fetch
从 Convai 仪表板填充的触发器下拉菜单。
6

添加碰撞体

默认激活模式是 碰撞,它使用 Unity 的 OnTriggerEnter。在同一个触发器 GameObject 上,点击 添加组件 > Box Collider。在 Box Collider 的设置中,启用 触发器.

调整碰撞体大小,以覆盖你希望触发器触发的区域。在场景视图中,绿色线框盒显示检测区域。

Box Collider with Is Trigger enabled on the trigger zone GameObject
已启用 Is Trigger 的 Box Collider。
7

按下 Play,并穿过

进入 Play 模式,并让玩家穿过碰撞体区域。

刚刚发生了什么

穿过碰撞体区域后,完整的 Narrative Design 流程被激活:

ConvaiNarrativeDesignTrigger 通过 OnTriggerEnter 检测到了玩家,并调用了 InvokeTrigger() ,使用你选择的触发器名称。SDK 会将触发器排队,直到角色的实时会话开启,然后发送一个 触发消息 通过 RTVI 连接发送到 Convai。Convai 沿匹配的边推进叙事图,并返回一个 behavior-tree-response ,其中包含新的章节 ID。 ConvaiNarrativeDesignManager 将该章节 ID 与其本地列表进行匹配,并触发了 OnSectionStart 在匹配条目上的……

有关此流程的完整说明,请参阅 叙事设计如何工作.

下一步

配置叙事设计管理器配置叙事设计触发器配置叙事模板键

最后更新于

这有帮助吗?