叙事设计快速入门
为 Convai 角色添加 Narrative Design Manager 和碰撞触发器,并在 Play Mode 中确认章节切换——无需代码。
最后更新于
这有帮助吗?
为 Convai 角色添加 Narrative Design Manager 和碰撞触发器,并在 Play Mode 中确认章节切换——无需代码。
本指南将带你走完最快速的流程,完成一个可工作的 Narrative Design 设置。到最后,角色会在玩家穿过触发区域时对章节变更作出反应——全程都通过检视器完成,无需任何代码。
开始前,请确认:
在管理器的检视器中,点击 与后端同步。SDK 会获取你的叙事章节并填充 叙事章节 列表。每一项都会显示来自仪表板的章节名称。
如果列表仍为空,请确认已在 ConvaiCharacter 上设置角色 ID,并且你的 API 密钥有效——请参阅 配置 API 密钥。该 上一次获取错误 字段会在出错时显示具体错误。

展开 叙事章节 列表中的第一个章节条目。你会看到两个 Unity 事件: 章节开始时 是位于 章节结束时.
单击 + on 章节开始时,将任意 GameObject 拖到对象字段中,并选择要调用的方法。用于测试的最简单选项是 NarrativeDesignDebugLogger 下面的辅助工具——将其添加到任意 GameObject,将该 GameObject 拖到监听器字段,然后选择 NarrativeDesignDebugLogger.LogSectionStarted.
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);
}
}
玩家设置检查清单——在按下 Play 之前验证这三项:
标签: 玩家 GameObject 的标签必须设置为 玩家。Trigger 组件会通过标签匹配来识别玩家。
碰撞体: 玩家必须拥有 Collider 组件。没有它, OnTriggerEnter 将永远不会触发。
刚体: 触发区域或玩家必须拥有一个 Rigidbody。将其添加到玩家上——如果你将其添加到触发区域,那么你必须对场景中的每个触发对象都重复这样做。
缺少其中任何一项,都是触发器在 Play 模式下看起来毫无反应的最常见原因。
进入 Play 模式,并让玩家穿过碰撞体区域。
当玩家进入该区域时,章节 ID 会出现在 Console 中。角色的下一次回复将反映新章节的目标。
穿过碰撞体区域后,完整的 Narrative Design 流程被激活:
该 ConvaiNarrativeDesignTrigger 通过 OnTriggerEnter 检测到了玩家,并调用了 InvokeTrigger() ,使用你选择的触发器名称。SDK 会将触发器排队,直到角色的实时会话开启,然后发送一个 触发消息 通过 RTVI 连接发送到 Convai。Convai 沿匹配的边推进叙事图,并返回一个 behavior-tree-response ,其中包含新的章节 ID。 ConvaiNarrativeDesignManager 将该章节 ID 与其本地列表进行匹配,并触发了 OnSectionStart 在匹配条目上的……
有关此流程的完整说明,请参阅 叙事设计如何工作.
最后更新于
这有帮助吗?
这有帮助吗?