SuperAPI AI 工具集

unity-navmesh

智能体与模型

查看项目

更新于 10-15 21:49

技能介绍

用途:在 Unity 6.3 LTS(6000.3)中为 NPC 提供寻路移动能力,适用于行走、追逐、巡逻目标,烘焙可导航表面,添加动态阻挡,或判断目标点是否可达。该技能关注 Unity 中的移动与寻路机制,不负责何时/何地移动的决策逻辑(属 game-ai),也不处理非寻路的力驱动或运动学移动(属 unity-physics)。

主要能力:基于 AI Navigation 包(2.x)以组件方式烘焙 NavMesh;用 NavMeshAgent.SetDestination 驱动智能体自动转向与互相避让;用 pathPending/remainingDistance 判断到达;用 NavMeshObstacle(Carve)处理动态阻挡,无需整体重新烘焙;用 NavMeshLink 连接互不相连的烘焙表面(跳跃、门、间隙);用 NavMeshPath.status 检查目标可达性;支持运行时通过 surface.BuildNavMesh() 重建。

使用方式:安装 AI Navigation 包(com.unity.ai.navigation),选中静态关卡几何体,添加 Navigation → NavMesh Surface 组件,设置 agent type/area 后点击 Bake;给每个移动 NPC 添加 NavMeshAgent,其半径、高度、速度须与烘焙的 agent type 匹配,且必须生成在烘焙网格上;脚本中调用 SetDestination(targetPos),用 CalculatePath 检查可达性。

限制与注意:Unity 6 中旧的 Navigation 窗口已移除,改用组件烘焙;智能体不在烘焙网格上或未烘焙会不动或瞬移回原点;运行时新生成的障碍需 NavMeshObstacle 或重新烘焙;每帧 SetDestination 有浪费,慢速目标宜定时重寻路;radius/height 不匹配会卡住或悬空;智能体互相抖动可调 avoidancePriority 与质量;内置 OffMeshLink 在 AI Navigation 2.0 已弃用,应改用 NavMeshLink;CalculatePath 返回 PathPartial 表示目标在另一烘焙岛上,需用 NavMeshLink 桥接或扩展几何体。相关技能:game-ai、unity-csharp-scripting。