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

动态上下文快速开始

向 NPC 添加 Dynamic Context Relay 组件,从 UI 按钮发送一次被跟踪的更新,并确认角色引用了它。

本指南会添加一个 ConvaiDynamicContextRelay 组件到一个 NPC,将 UI 按钮连接为发送一个被跟踪的上下文更新,并确认角色在对话中引用该更新。请在一个……之后使用它 ConvaiCharacter 已连接并在 Play 模式下对语音做出响应。

前提条件

开始前,请确认:

为角色添加动态上下文

1

添加中继组件

在层级视图中选择 NPC 的 GameObject。在检查器中,点击 添加组件 并搜索 Convai Dynamic Context Relay,或者导航到 Convai → Dynamic Context → Convai Dynamic Context Relay.

该组件添加了三个部分: 目标 (它驱动的是哪个角色), 默认值 (应用于每次调用的响应模式和刷新行为),以及 事件 (用于排队调用和跳过调用的回调)。

2

验证角色解析

在 目标 部分,确认 Auto Resolve Character 已启用(默认设置)。中继会查找一个 ConvaiCharacter 在调用时位于同一个 GameObject 上的

如果 ConvaiCharacter 位于不同的 GameObject 上,请禁用 Auto Resolve Character 并拖入正确的 ConvaiCharacter 将第二个角色自己的 Character ID 从 角色 字段。已分配的 角色 始终优先于自动解析。

3

配置默认值

在 默认值 部分:

  • 将 响应模式 于 静默 (默认)。使用 静默,该更新会被吸收到角色的感知中,但不会让它立即说话——角色会在下一次响应中将其纳入。

  • 将 立即刷新 已禁用(默认)。角色会先将中继更新批处理大约半秒再发送;仅当某次调用必须在不等待批处理窗口的情况下到达 Convai 时,才启用此字段。

4

连接触发器

向你的场景添加一个 UI Button(临时的也可以)。在它的 按钮 组件中,打开 On Click().

点击 + 以添加监听器,将 NPC 的 GameObject 拖到对象字段中,然后选择 ConvaiDynamicContextRelay → AddEvent 从函数下拉菜单中选择。下拉菜单下方会出现一个文本字段——请在其中输入事件文本,因为 Button.onClick 本身不携带任何数据:

玩家进入了消防出口走廊。
5

在 Play 模式下测试

进入 Play 模式并与角色开始对话。点击你在上一步连接的按钮,然后向角色提问,例如“这里发生了什么?”

角色应该会引用该事件——例如: “你刚才进入了消防出口走廊。继续往前之前,先记住疏散程序。”

如果角色没有引用该事件,请打开 Unity 控制台并检查是否有来自 ConvaiDynamicContextRelay 或 ConvaiCharacter。请参见 排查动态上下文问题 以获取完整的诊断检查清单。

无需自定义代码进行测试

导入 LipSync 示例 从包管理器中打开其场景。该示例包含一个 示例调试中心 ,其中有一个 上下文 抽屉,它会将状态、事件和注意对象更新发送到场景的 ConvaiCharacter 无需你自己连接 UI。如果角色通过 Debug Hub 能正确响应,但通过你自己的中继设置却不能,那么问题出在你的检查器连接上——而不是 Dynamic Context 本身。

下一步

中继组件参考动态上下文脚本 API动态上下文使用示例同步行为与时序

最后更新于

这有帮助吗?