> For the complete documentation index, see [llms.txt](https://docs.convai.com/api-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.convai.com/api-docs/zh/cha-jian-yu-ji-cheng/convai-unreal-engine-plugin/features/character-movement/troubleshoot-character-movement.md).

# 排查角色移动问题

诊断 Convai Move To 或 Convai Escort 为什么失败、报告了意外结果代码，或始终到达不了目的地。

使用此页面来诊断 `Convai 移动到` 和 `Convai 陪护` 由……导致的失败 **结果代码** 每个节点都会报告其 **成功** 或 **失败** 引脚。每条条目都遵循“症状 / 原因 / 修复 / 验证”结构。

{% hint style="info" %}
如果你还没有连好这些节点，请从……开始 [将角色移动到对象](/api-docs/zh/cha-jian-yu-ji-cheng/convai-unreal-engine-plugin/features/character-movement/move-a-character-to-an-object.md) 或 [护送角色](/api-docs/zh/cha-jian-yu-ji-cheng/convai-unreal-engine-plugin/features/character-movement/escort-a-character.md) 并且只有在某个特定结果代码持续存在时才返回这里。
{% endhint %}

### 开始之前

* 打开 [Convai 调试覆盖层](/api-docs/zh/cha-jian-yu-ji-cheng/convai-unreal-engine-plugin/troubleshooting/convai-debug-overlay.md) 并选择移动角色。 **周围环境** 面板显示 `— 已到达` 或 `— 无路径` 用于目标对象，这会在你接触 Blueprint 图表之前缩小大多数结果代码的范围。
* 确认正在移动的 Pawn 的 **AI 控制器**、移动组件和路径跟随组件都存在——下面的三个结果代码专门用于命名缺失的那个组件。

### Convai Move To 报告 `未知目标`

**症状：** `Convai 移动到` 触发时 **失败** 使用 **结果代码** `未知目标`.

**原因：** 由……引用的目标 Actor `Destination.Ref` 已消失或无法解析。

**解决方法：**

1. 确认设置在……上的 Actor **目标** 在节点触发时仍存在于关卡中。
2. 如果该 Actor 是动态生成或销毁的，请确保在 Actor 存在后再设置引用，并在它被销毁前清除引用。

**验证：** 使用有效的 Actor 引用再次触发移动。 **结果代码** 应不再显示为 `未知目标`.

### Convai Move To 报告 `无法到达`

**症状：** `Convai 移动到` 触发时 **失败** 使用 **结果代码** `无法到达`.

**原因：** 目标已知，但没有导航网格路径能从角色当前位置到达它——通常是路线没有 NavMesh 覆盖，或者所有预设的移动点都被阻挡。

**解决方法：**

1. 添加或扩展一个 **Nav Mesh Bounds Volume** 覆盖该路线和目标。
2. 如果目标使用移动点，请检查是否每个已启用的点都被阻挡。要么清除障碍，要么启用 **将对象作为回退** 在目标的 `FConvaiObjectEntry` 上，这样当所有点都不可达时，解析会回退到对象本身。
3. 打开 [Convai 调试覆盖层](/api-docs/zh/cha-jian-yu-ji-cheng/convai-unreal-engine-plugin/troubleshooting/convai-debug-overlay.md) 并检查目标在……中的那一行 **周围环境** 用于 `— 无路径`.

**验证：** 再次触发移动。 **周围环境** 应显示 `— 已到达` 当角色到达后，并且 **结果代码** 应显示为 `已到达`.

### 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 的导航代理属性。

**解决方法：**

1. 为每个结构和安全门添加一个 **Nav Mesh Bounds Volume** 添加到关卡中，如果它不存在的话。
2. 确认 Pawn 的导航代理属性（半径、高度）与关卡中的导航数据实例匹配。

**验证：** 一旦 Pawn 有了 NavMesh 覆盖，再次触发移动。

### Convai Move To 报告 `移动失败`

**症状：** `Convai 移动到` 触发时 **失败** 使用 **结果代码** `移动失败`.

**原因：** 尽管目标仍被解析为可到达，Unreal 还是停止了移动——例如，Pawn 在物理上卡住了，或者底层引擎移动请求被中断了。

**解决方法：**

1. 检查已解析路径上的阻碍或碰撞问题。
2. 确认角色的 Blueprint 中没有其他内容在……时发出竞争性的移动或停止请求 `Convai 移动到` 处于活动状态。

**验证：** 在畅通路径上再次触发移动。 **结果代码** 应显示为 `已到达`.

### Convai Move To 报告 `已在目标处` 意外地

**症状：** `Convai 移动到` 触发时 **成功** 立即以 **结果代码** `已在目标处`，但你本来期望角色走到某个地方。

**原因：** 角色已经处于 `max(接受半径，150 厘米)` 的移动点，或者 `max(接受半径 × 2，150 厘米)` 对象包围盒占地范围内，而没有预设移动点。

**解决方法：** 如果角色应该走一段可见距离，请增加 **接受半径** 在目标的 `FConvaiObjectEntry`，或者重新放置角色或目标，让它们起始距离更远。

**验证：** 再次触发移动。 **结果代码** 应显示为 `已到达` 在可见移动之后。

### Convai Escort 报告 `角色不可用`

**症状：** `Convai 陪护` 触发时 **失败** 使用 **结果代码** `角色不可用`.

**原因：** `被护送角色` 已消失，或不是有效的护送目标。

**解决方法：** 确认由……引用的 Actor **被护送角色** 在节点触发时仍然存在且是有效的 Pawn。

**验证：** 使用有效的被护送角色引用再次触发护送。

### Convai Escort 报告 `目标不可用`

**症状：** `Convai 陪护` 触发时 **失败** 使用 **结果代码** `目标不可用`.

**原因：** `目标` 已消失，或无法从引导角色当前位置到达——与……相同的可达性条件 `Convai 移动到`的 `无法到达`.

**解决方法：** 执行与……相同的检查 [Convai Move To 报告 `无法到达`](#convai-move-to-reports-unreachable) ——NavMesh 覆盖、被阻挡的移动点，以及 **将对象作为回退**.

**验证：** 再次触发护送。两个 Actor 都应到达目标并且 **结果代码** 应显示为 `已到达`.

### Convai Escort 报告 `无效护送设置`

**症状：** `Convai 陪护` 触发时 **失败** 使用 **结果代码** `无效护送设置`.

**原因：** `正在护送的 Actor` 缺少护送所需的设置——例如，没有 AI Controller，且缺少相同的前置条件 `Convai 移动到` 所需。

**解决方法：** 确认 **正在护送的 Actor** 满足与……相同的前置条件 `Convai 移动到`的 **正在移动的 Actor**：AI Controller、移动组件和路径跟随组件。

**验证：** 确认引导角色的设置后再次触发护送。

### Convai Escort 报告 `移动失败`

**症状：** `Convai 陪护` 触发时 **失败** 使用 **结果代码** `移动失败`.

**原因：** 在护送到达目标之前，Unreal 停止了受控移动。

**解决方法：** 执行与……相同的检查 [Convai Move To 报告 `移动失败`](#convai-move-to-reports-move-failed) ——阻碍、碰撞，或引导角色上的竞争性移动请求。

**验证：** 在畅通路径上再次触发护送。

### 仍被阻挡

如果这里没有列出某个结果代码，或者角色在移动途中停止但没有报告结果代码，请打开 [Convai 调试覆盖层](/api-docs/zh/cha-jian-yu-ji-cheng/convai-unreal-engine-plugin/troubleshooting/convai-debug-overlay.md)，选择角色，并检查其动作队列和结果栏以获取确切的失败说明。请附上 **结果代码**, **附加说明**，以及报告问题时关卡 NavMesh 覆盖情况的描述。

### 相关页面

{% content-ref url="/pages/2db1977bcc865a9fcbab486f2c4905551657d9f3" %}
[移动 Blueprint 参考](/api-docs/zh/cha-jian-yu-ji-cheng/convai-unreal-engine-plugin/features/character-movement/movement-blueprint-reference.md)
{% endcontent-ref %}

{% content-ref url="/pages/cd1cb108d1d64d0bc8aa05c8c11851b2a2db9b06" %}
[角色移动的工作原理](/api-docs/zh/cha-jian-yu-ji-cheng/convai-unreal-engine-plugin/features/character-movement/how-character-movement-works.md)
{% endcontent-ref %}

{% content-ref url="/pages/1ed7761971047e9936d8725a20f0087277c2bd4b" %}
[使用 Convai 调试覆盖层检查角色](/api-docs/zh/cha-jian-yu-ji-cheng/convai-unreal-engine-plugin/troubleshooting/convai-debug-overlay.md)
{% endcontent-ref %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.convai.com/api-docs/zh/cha-jian-yu-ji-cheng/convai-unreal-engine-plugin/features/character-movement/troubleshoot-character-movement.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
