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

快速开始

您的第一个可用 Dynamic Context 集成的分步演练——一个知道玩家站立位置的角色,并可通过一次按钮点击更新。

让你的第一个具备上下文感知的角色运行起来

本指南将带你完成一个完整且可运行的示例:一个角色能够知道玩家当前站在哪个位置,并通过按钮点击来更新——无需编写脚本。你将添加一个组件,配置一个命令,连接一个事件,并在 Play Mode 中测试所有内容,全部都在 Unity Inspector 中完成。

先决条件

  • 一个 Unity 场景,其中有一个 ConvaiCharacter 组件已经设置并正常工作(角色应该会对语音做出回应)。

  • 你的 Convai API 密钥已在以下位置配置: 工具 → Convai → 配置.

逐步设置

1

添加 Dynamic Context Command 组件

在选中 NPC GameObject 的情况下,点击 添加组件 并导航到:

Convai → Dynamic Context → Convai Dynamic Context Command

该组件会以三个部分显示在 Inspector 中: 目标, 命令,以及 事件.

2

验证自动解析角色

目标 部分,确认 自动解析角色 已启用(默认开启)。这会告诉组件自动查找同一 GameObject 上的 ConvaiCharacter ,你无需手动分配它。

3

配置 SetState 命令

命令 部分下:

  • 设置 命令类型SetState (默认值)。

  • 设置 状态名称位置.

  • 设置 状态值火灾出口走廊.

  • 留空 反应 设置为 Auto.

此命令会告诉角色当前的位置是火灾出口走廊。

4

将 Execute() 连接到一个触发器

选择任何应该触发上下文更新的事件源。为了快速测试,可以使用一个 UI 按钮:

  1. 在场景中选中你的按钮。如果你还没有按钮,请先创建一个按钮。

  2. On Click () 事件列表,点击 + 按钮。

  3. 将 NPC GameObject 拖到对象槽中。

  4. 在函数下拉菜单中,选择 ConvaiDynamicContextCommand → Execute.

你也可以连接 Execute()OnTriggerEnter、动画时间线信号,或任何其他 UnityEvent.

5

进入 Play Mode 并测试

播放。先与角色开始对话,然后点击按钮(或触发该事件)。向角色询问 “我在哪里?”“这里是什么地方?” 并确认它会以对火灾出口走廊的感知作出回应。

刚刚发生了什么

当你点击按钮时,会发生以下情况:

  1. 按钮的 On Click 事件调用了 Execute()ConvaiDynamicContextCommand 组件。

  2. 该组件解析了 ConvaiCharacter 并验证了配置。

  3. SetState("Location", "Fire Exit Corridor") 在角色的 Dynamic Context 接口上被调用。

  4. SDK 的内部跟踪器记录了新的状态。

  5. 由于角色当时已经在对话中, 上下文更新 消息会立即发送到 Convai 后端。

  6. 后端会将上下文注入角色的推理中,使其可用于下一轮对话。

如果 Execute() 如果在对话开始前就触发了,它会被排队,并在会话开始时自动发送——不会丢失任何内容。有关所有时序场景的精确说明,请参阅 同步行为与时序.

SDK 附带了一个现成的 示例动态上下文 UI 预制体,可用于在运行时测试所有上下文操作,而无需构建自定义 UI。你可以在以下路径找到它: Packages/com.convai.convai-sdk-for-unity/Prefabs/SampleDynamicContextUI.prefab ——将它拖入场景,并分配角色引用。

接下来做什么

  • 命令组件参考 ——完整详解全部六种命令类型、每个字段以及所有验证警告。

  • 连接时的静态上下文 ——设置一个固定的场景描述,让角色在说出第一句话之前就已知晓。

  • 脚本 API 参考 ——当你的游戏逻辑需要时,可通过 C# 驱动 Dynamic Context。

结论

你已经拥有一个可工作的 Dynamic Context 集成,并且完全由 Inspector 驱动。 ConvaiDynamicContextCommand 组件和 ConvaiCharacter.DynamicContext 脚本 API 共享同一个底层跟踪器——你在这里设置的一切都可以直接扩展到脚本系统中。探索 命令组件参考 以了解可用命令类型的完整范围。

最后更新于

这有帮助吗?