mcpField
I
initialize-ai-navigation

initialize-ai-navigation

github.com/unity-technologies开发60458 次安装今天更新
代码仓库

关于 initialize-ai-navigation

面向 Unity 开发的导航技能,可判断需求并引导配置、验证和排错。它涵盖常见 NavMesh 设置,并要求先检查项目中的现有组件,再提出修改方案。

主要功能

  1. 01识别并分类导航需求
  2. 02盘点 NavMesh 组件
  3. 03规划设置并进行验证
  4. 04排查常见移动问题
  5. 05提供 Unity Editor C# 执行指引

适用场景

  1. 01配置 NavMesh 寻路
  2. 02添加巡逻或点击移动行为
  3. 03连接不连续的导航区域
  4. 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. 预检:评估当前导航设置

进行更改前,先检查已有内容:

  1. 查找现有导航组件。如果连接了 Editor,请在实时场景中查询 NavMeshSurface、NavMeshAgent、NavMeshObstacle、NavMeshLink 和 NavMeshModifier——请参阅 unity-cli 技能,了解如何操作正在运行的 Editor。如果没有连接 Editor,请在场景和预制件文件中搜索这些组件名称。
  2. 通过 Window > AI > Navigation > Agents tab 检查已配置的 Agent 类型。
  3. 在提出更改建议前,汇总所有检测到的导航组件。
2. 收集缺失信息

创建组件前,请确认用户已说明:可行走表面、Agent 类型/尺寸、Agent 行为、障碍物、连接以及区域/代价要求。如有不清楚之处,请提问。完整详情请参阅参考文档中的信息收集清单。

3. 规划与执行

按以下通用顺序进行。有关每个组件的详细分步说明,请参阅参考资料中的组件设置指南:

  1. NavMesh Surface — 创建可行走网格(烘焙)
  2. NavMesh Agent — 添加寻路角色
  3. NavMesh Obstacle — 添加动态障碍物
  4. NavMesh Link — 连接断开的 NavMesh 区域
  5. NavMesh Modifier / Modifier Volume — 微调区域类型
  6. 脚本 — 移动、巡逻、点击移动、动画联动(请参阅参考资料中的常见操作方案)
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
  • 所需的任何手动步骤(调整路径点、场景更改后重新烘焙等)

评论

支持 Markdown