Agent Skills
返回列表
💻

Unity NavMesh 寻路导航

开发编程 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/unity-navmesh-sh-59jk2r。

技能介绍

它解决什么问题

NPC 要走到某个位置,你得自己回答三件事:地面能不能走、怎么绕过挡路物、什么算到达。Unity 6 起旧的 Navigation 窗口(Object/Bake 标签页)被移除,烘焙改为组件驱动,照着旧教程做的人会直接卡住。这个技能覆盖从烘焙到驱动的整条链路。

它如何工作

  • 配置 com.unity.ai.navigation 包(AI Navigation 2.x),目标为 Unity 6000.0 LTS。
  • 给静态关卡几何体加 NavMeshSurface,设置 agent type 与 area 参数后点 Bake,用 AI Navigation overlay 在 Scene 视图确认结果。
  • 给每个移动 NPC 挂 NavMeshAgent,用 SetDestination 驱动,用 remainingDistance / pathPending 判断到达。
  • 用 NavMeshObstacle(carving)处理门、箱子这类动态阻挡物,无需整图重烤。
  • 支持运行时 NavMeshSurface.BuildNavMesh() 重建,适配程序化或流式关卡。
  • 用 NavMeshPath.status 校验可达性,用 NavMesh.SamplePosition 把出生点对齐到烘焙面。

适用边界与注意点

只负责移动与寻路机制,不负责何时往哪走——FSM、行为树、转向逻辑属于 game-ai;力驱动或 kinematic 移动应交给 unity-physics。

常见坑:agent 不在烘焙面上会不动或瞬移回原点,先 SamplePosition 吸附;NavMeshAgent 的 radius/height 与烘焙 agent type 不一致会卡缝或悬空;每帧 SetDestination 对慢速目标浪费,按 0.2s 定时重算即可;agent 互相抖动可调 avoidancePriority,真正静态阻挡物改用 obstacle,别只靠 agent avoidance。

使用场景

  • 在 Unity 6 项目里给敌人加巡逻与追击,需要先烘焙可行走表面再驱动 NavMeshAgent。
  • 程序化生成的关卡需要在玩家进入前动态重建导航网格,而不是每次改地形都手工 Bake。
  • 门或箱子会被推开挡住通道,想用 NavMeshObstacle 挖洞让路径自动绕行,避免整图重烤。
  • NPC 出生后不动或瞬移回原点,需要用 NavMesh.SamplePosition 吸附到烘焙网格上排查。

适合人员

  • Unity 客户端程序员,在 Unity 6 项目里给 NPC 接寻路与绕障,遇到旧 Navigation 窗口失效不知道在哪 Bake。
  • 技术策划或关卡设计,需要确认哪些区域可行走、动态物体如何阻挡路径,并能直接看到烘焙出的导航网格。
  • 玩法程序员,负责敌人移动执行层,想把 FSM 的决策结果交给 NavMeshAgent,而不是自己实现绕障逻辑。
  • 程序化关卡程序员,地形在运行时生成,需要不点 Bake 按钮也能重建导航网格。