关于 initialize-ai-navigation
面向 Unity 开发者和编码 Agent 的导航配置技能,可按需求选择 NavMesh 组件,并指导检查、设置与验证。
主要功能
- 01按意图分流导航需求
- 02检查 AI Navigation 包安装情况
- 03检查场景中的现有组件
- 04指导 NavMesh 配置与验证
- 05涵盖移动和巡逻方案
适用场景
- 01为角色添加寻路功能
- 02排查 Agent 无有效路径的问题
- 03连接分离的 NavMesh 区域
- 04设置点击移动或巡逻行为
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ unity-technologies/ skills --skill initialize-ai-navigation安装后在 Claude Code 中输入/initialize-ai-navigation确认已加载。
附带文件references/navigation-system.md
详细介绍
确定用户的需求,并引导他们完成导航设置。有关组件详情、API 说明、代码示例和故障排查的扩展信息,请参阅 navigation-system.md。
将 C# 传递给 eval
eval 编译的是语句块,而不是文件。这会带来两个后果,且都会导致编译错误,而非警告:
- 不能使用
using指令。 编译器会将using UnityEngine;视为资源释放语句并拒绝它(CS0210)。 - 类型必须使用完全限定名称。 裸写
AssetDatabase或Volume无法解析(CS0246/CS0103),而裸写Object则会与object混淆(CS0104)。
如果下面的代码片段以文件形式编写(为了便于阅读而包含 using,或是需要保存到项目中),请在传递给 eval 前为类型添加限定名称。
路由逻辑
| 用户说 | 解读 |
|---|---|
| “添加导航”/“设置导航” | 完整设置:NavMeshSurface + 烘焙 + NavMeshAgent |
| “让这个角色能够导航” | 添加 NavMeshAgent,并确保存在 NavMesh |
| “添加寻路” | NavMeshAgent + 移动脚本 |
| “Agent 不动”/“找不到路径” | 故障排查——参见参考文档中的故障排查决策树 |
| “避开障碍物” | 使用 carving 或避让功能的 NavMeshObstacle |
| “连接两个区域”/“跳过去” | 在区域之间添加 NavMeshLink |
| “在多个点之间巡逻” | NavMeshAgent + 巡逻脚本 |
| “点击以移动” | NavMeshAgent + 射线检测点击移动脚本 |
| “让角色在导航时播放动画” | 将 Animator 与 NavMeshAgent 配合使用 |
| “不同的 Agent 尺寸” | 在 Navigation 窗口中配置 Agent 类型 |
| “区域和代价”/“限制区域” | NavMesh 区域类型、修饰器和 Agent 区域掩码 |
工作流
0. 检查包安装情况
在进行任何其他操作之前,确认已安装 com.unity.ai.navigation。如果缺少该包,请将其添加到 Packages/manifest.json 的 dependencies 中——Unity 会在 Editor 下次重新获得焦点时解析该包,无需连接 Editor:
"com.unity.ai.navigation": "<current 2.x version>"
不要臆造版本字符串。从 Unity 注册表中读取当前版本——https://packages.unity.com/com.unity.ai.navigation 列出了所有已发布版本——或者复制此清单中相邻 Unity 包使用的版本。不存在的版本会导致 Unity 静默解析失败,因此错误的猜测看起来就像什么都没发生。
只有确认安装完成后才能继续。如果你可以在运行中的 Editor 中执行 C#,请参阅 navigation-system.md 中的 Client.Add 等效方式。
1. 前置检查:评估当前导航设置
进行更改前,检查已有内容:
- 查找现有导航组件。如果已连接 Editor,请查询运行中场景里的
NavMeshSurface、NavMeshAgent、NavMeshObstacle、NavMeshLink和NavMeshModifier——有关如何驱动正在运行的 Editor,请参阅unity-cli技能。如果未连接,请在场景和预制件文件中搜索这些组件名称。 - 通过 Window > AI > Navigation > Agents 选项卡检查已配置的 Agent 类型。
- 提出更改建议前,总结所有检测到的导航组件。
2. 收集缺失信息
创建组件前,确保用户已指定:可行走表面、Agent 类型/尺寸、Agent 行为、障碍物、链接以及区域/代价要求。如有不清楚之处,请先询问。完整详情请参阅参考文档中的信息收集清单。
3. 规划与执行
按以下通用顺序进行。有关每个组件的详细分步说明,请参阅参考资料中的组件设置指南:
- NavMesh Surface — 创建可行走网格(烘焙)
- NavMesh Agent — 添加寻路角色
- NavMesh Obstacle — 添加动态障碍物
- NavMesh Link — 连接断开的 NavMesh 区域
- NavMesh Modifier / Modifier Volume — 微调区域类型
- 脚本 — 移动、巡逻、点击移动、动画联动(请参阅参考资料中的常见操作方案)
4. 验证
设置完成后,确认:
- NavMesh 已烘焙且可见(蓝色叠加层)
- NavMeshSurface 的 Agent 类型与 NavMeshAgent 的 Agent 类型一致
- Agent 存在通往目标位置的有效路径
- 障碍物能够正确地刻蚀或阻挡
- Link 的两端均已连接,并且已启用 Activated
- 区域遮罩允许预期的移动
- 没有相互冲突的组件(请参阅参考资料中的组件混用指南)
- 如果 NavMeshAgent 使用 Rigidbody,则已启用 Is Kinematic
5. 最终确认
总结创建或更改的内容:
- NavMesh Surface:对应的 GameObject、Agent 类型、几何体模式、烘焙状态
- NavMesh Agent:对应的 GameObject、速度、停止距离、区域遮罩
- NavMesh Obstacle:对应的 GameObject、形状、是否启用 carve
- NavMesh Link:起点/终点、是否双向、区域类型
- 脚本:哪些脚本附加到了哪些 GameObject
- 所需的任何手动步骤(调整路径点、场景更改后重新烘焙等)