排查角色移动问题
诊断为什么 Convai Move To 或 Convai Escort 失败、报告意外结果代码或始终无法到达目的地。
使用此页面来诊断 Convai 移动到 和 Convai 陪护 由……导致的失败 结果代码 每个节点都会报告其 成功 或 失败 引脚。每条条目都遵循“症状 / 原因 / 修复 / 验证”结构。
开始之前
打开 Convai 调试覆盖层 并选择移动角色。 周围环境 面板显示
— 已到达或— 无路径用于目标对象,这会在你接触 Blueprint 图表之前缩小大多数结果代码的范围。确认正在移动的 Pawn 的 AI 控制器、移动组件和路径跟随组件都存在——下面的三个结果代码专门用于命名缺失的那个组件。
Convai Move To 报告 未知目标
症状: Convai 移动到 触发时 失败 使用 结果代码 未知目标.
原因: 由……引用的目标 Actor Destination.Ref 已消失或无法解析。
解决方法:
确认设置在……上的 Actor 目标 在节点触发时仍存在于关卡中。
如果该 Actor 是动态生成或销毁的,请确保在 Actor 存在后再设置引用,并在它被销毁前清除引用。
验证: 使用有效的 Actor 引用再次触发移动。 结果代码 应不再显示为 未知目标.
Convai Move To 报告 无法到达
症状: Convai 移动到 触发时 失败 使用 结果代码 无法到达.
原因: 目标已知,但没有导航网格路径能从角色当前位置到达它——通常是路线没有 NavMesh 覆盖,或者所有预设的移动点都被阻挡。
解决方法:
添加或扩展一个 Nav Mesh Bounds Volume 覆盖该路线和目标。
如果目标使用移动点,请检查是否每个已启用的点都被阻挡。要么清除障碍,要么启用 将对象作为回退 在目标的
FConvaiObjectEntry上,这样当所有点都不可达时,解析会回退到对象本身。打开 Convai 调试覆盖层 并检查目标在……中的那一行 周围环境 用于
— 无路径.
验证: 再次触发移动。 周围环境 应显示 — 已到达 当角色到达后,并且 结果代码 应显示为 已到达.
Convai Move To 报告 无效角色
症状: Convai 移动到 触发时 失败 使用 结果代码 无效角色.
原因: 正在移动的 Actor 不是可用的 Pawn。
解决方法: 确认 正在移动的 Actor 已连接到一个 Pawn (或子类,例如 Character)的 Actor 引用,而不是静态网格 Actor 或其他非 Pawn 类型。
验证: 使用有效的 Pawn 引用再次触发移动。
Convai Move To 报告 缺少 AI 控制器
症状: Convai 移动到 触发时 失败 使用 结果代码 缺少 AI 控制器.
原因: 设置为……的 Pawn 正在移动的 Actor 没有被 AI Controller 控制。
解决方法: 分配一个 AAIController (或子类)给该 Pawn——要么设置 Auto Possess AI 为 Pawn,以便自动生成一个,或者在运行时显式占有它。
验证: 确认 Pawn 的控制器是 AI Controller,然后再次触发移动。
Convai Move To 报告 缺少移动组件
症状: Convai 移动到 触发时 失败 使用 结果代码 缺少移动组件.
原因: 该 Pawn 没有移动组件。
解决方法: 为 Pawn 添加一个移动组件——对于 Character,这就是 CharacterMovementComponent,默认添加;对于自定义的 Pawn,请添加兼容的移动组件,例如 FloatingPawnMovement.
验证: 确认 Pawn 的 组件 面板列出了移动组件,然后再次触发移动。
Convai Move To 报告 缺少路径跟随组件
症状: Convai 移动到 触发时 失败 使用 结果代码 缺少路径跟随组件.
原因: 该 Pawn 的 AI Controller 没有路径跟随组件。
解决方法: 确认该 AI Controller 是标准的 AAIController (或保留其默认路径跟随组件的子类),而不是移除了该组件的自定义控制器。
验证: 确认 AI Controller 的设置后再次触发移动。
Convai Move To 报告 缺少导航数据
症状: Convai 移动到 触发时 失败 使用 结果代码 缺少导航数据.
原因: 该世界没有与此 Pawn 兼容的导航数据——通常是没有 RecastNavMesh Actor 存在,或者它不覆盖该 Pawn 的导航代理属性。
解决方法:
为每个结构和安全门添加一个 Nav Mesh Bounds Volume 添加到关卡中,如果它不存在的话。
确认 Pawn 的导航代理属性(半径、高度)与关卡中的导航数据实例匹配。
验证: 一旦 Pawn 有了 NavMesh 覆盖,再次触发移动。
Convai Move To 报告 移动失败
症状: Convai 移动到 触发时 失败 使用 结果代码 移动失败.
原因: 尽管目标仍被解析为可到达,Unreal 还是停止了移动——例如,Pawn 在物理上卡住了,或者底层引擎移动请求被中断了。
解决方法:
检查已解析路径上的阻碍或碰撞问题。
确认角色的 Blueprint 中没有其他内容在……时发出竞争性的移动或停止请求
Convai 移动到处于活动状态。
验证: 在畅通路径上再次触发移动。 结果代码 应显示为 已到达.
Convai Move To 报告 已在目标处 意外地
症状: Convai 移动到 触发时 成功 立即以 结果代码 已在目标处,但你本来期望角色走到某个地方。
原因: 角色已经处于 max(接受半径,150 厘米) 的移动点,或者 max(接受半径 × 2,150 厘米) 对象包围盒占地范围内,而没有预设移动点。
解决方法: 如果角色应该走一段可见距离,请增加 接受半径 在目标的 FConvaiObjectEntry,或者重新放置角色或目标,让它们起始距离更远。
验证: 再次触发移动。 结果代码 应显示为 已到达 在可见移动之后。
Convai Escort 报告 角色不可用
症状: Convai 陪护 触发时 失败 使用 结果代码 角色不可用.
原因: 被护送角色 已消失,或不是有效的护送目标。
解决方法: 确认由……引用的 Actor 被护送角色 在节点触发时仍然存在且是有效的 Pawn。
验证: 使用有效的被护送角色引用再次触发护送。
Convai Escort 报告 目标不可用
症状: Convai 陪护 触发时 失败 使用 结果代码 目标不可用.
原因: 目标 已消失,或无法从引导角色当前位置到达——与……相同的可达性条件 Convai 移动到的 无法到达.
解决方法: 执行与……相同的检查 Convai Move To 报告 无法到达 ——NavMesh 覆盖、被阻挡的移动点,以及 将对象作为回退.
验证: 再次触发护送。两个 Actor 都应到达目标并且 结果代码 应显示为 已到达.
Convai Escort 报告 无效护送设置
症状: Convai 陪护 触发时 失败 使用 结果代码 无效护送设置.
原因: 正在护送的 Actor 缺少护送所需的设置——例如,没有 AI Controller,且缺少相同的前置条件 Convai 移动到 所需。
解决方法: 确认 正在护送的 Actor 满足与……相同的前置条件 Convai 移动到的 正在移动的 Actor:AI Controller、移动组件和路径跟随组件。
验证: 确认引导角色的设置后再次触发护送。
Convai Escort 报告 移动失败
症状: Convai 陪护 触发时 失败 使用 结果代码 移动失败.
原因: 在护送到达目标之前,Unreal 停止了受控移动。
解决方法: 执行与……相同的检查 Convai Move To 报告 移动失败 ——阻碍、碰撞,或引导角色上的竞争性移动请求。
验证: 在畅通路径上再次触发护送。
仍被阻挡
如果这里没有列出某个结果代码,或者角色在移动途中停止但没有报告结果代码,请打开 Convai 调试覆盖层,选择角色,并检查其动作队列和结果栏以获取确切的失败说明。请附上 结果代码, 附加说明,以及报告问题时关卡 NavMesh 覆盖情况的描述。
相关页面
移动 Blueprint 参考角色移动的工作方式使用 Convai 调试覆盖层检查角色最后更新于
这有帮助吗?