关于 initialize-ai-navigation
面向 Unity 开发的导航技能,可判断需求并引导配置、验证和排错。它涵盖常见 NavMesh 设置,并要求先检查项目中的现有组件,再提出修改方案。
主要功能
- 01识别并分类导航需求
- 02盘点 NavMesh 组件
- 03规划设置并进行验证
- 04排查常见移动问题
- 05提供 Unity Editor C# 执行指引
适用场景
- 01配置 NavMesh 寻路
- 02添加巡逻或点击移动行为
- 03连接不连续的导航区域
- 04诊断 Agent 无有效路径
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ unity-technologies/ unity-agent-plugin --skill initialize-ai-navigation安装后在 Claude Code 中输入/initialize-ai-navigation确认已加载。
附带文件references/navigation-system.md
详细介绍
确定用户的需求,并引导他们完成导航设置。有关组件的详细信息、API 说明、代码示例和故障排除,请参阅 navigation-system.md。
将 C# 传递给 script eval
script eval 编译的是语句块,而不是文件。这会导致两种后果,且都会引发编译错误,而非警告:
- 不能使用
using指令。 编译器会将using UnityEngine;视为资源释放语句并将其拒绝(CS0210)。 - 类型必须使用完全限定名。 单独的
AssetDatabase或Volume无法解析(CS0246/CS0103),单独的Object则会与object混淆(CS0104)。
下方代码片段若以文件形式编写(为了便于阅读而包含 using,或是打算保存到项目中),传递给 script eval 前,请为类型添加限定名。
路由逻辑
| 用户表述 | 解读 |
|---|---|
| “添加导航”/“设置导航” | 完整设置:NavMeshSurface + 烘焙 + NavMeshAgent |
| “让这个角色移动导航” | 添加 NavMeshAgent,并确保存在 NavMesh |
| “添加寻路” | NavMeshAgent + 移动脚本 |
| “Agent 不动”/“找不到路径” | 故障排除——请参阅参考文档中的故障排除决策树 |
| “避开障碍物” | 使用 carving 或 avoidance 配置 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 静默解析失败,因此错误的猜测看起来就像什么都没发生。
确认已安装后再继续。如果你有可运行 C# 的实时 Editor,请参阅 navigation-system.md 中的 Client.Add 等效操作。
1. 预检:评估当前导航设置
进行更改前,先检查已有内容:
- 查找现有导航组件。如果连接了 Editor,请在实时场景中查询
NavMeshSurface、NavMeshAgent、NavMeshObstacle、NavMeshLink和NavMeshModifier——请参阅unity-cli技能,了解如何操作正在运行的 Editor。如果没有连接 Editor,请在场景和预制件文件中搜索这些组件名称。 - 通过 Window > AI > Navigation > Agents tab 检查已配置的 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
- 所需的任何手动步骤(调整路径点、场景更改后重新烘焙等)