npx skills add ...
npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill unity-navmesh
Add AI navigation in Unity 6.3 LTS: bake a NavMesh with the AI Navigation package (NavMeshSurface), move agents with NavMeshAgent.SetDestination, and handle dynamic obstacles. Use when setting up pathfinding, making an enemy chase the player, baking navigation, or when the user mentions NavMesh, NavMeshAgent, NavMeshSurface, NavMeshObstacle, or Unity pathfinding.
npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill unity-navmesh
Give NPCs pathfinding in Unity 6.3 LTS: bake walkable surfaces and move agents around obstacles. Targets Unity 6.3 LTS (6000.3) with the AI Navigation package 2.x.
Version trap (Unity 2022+/6): the old built-in Navigation window (Object/Bake tabs) is gone. Baking is now component-based via the AI Navigation package (
com.unity.ai.navigation): add a NavMeshSurface to your level geometry and click Bake. The runtimeNavMeshAgent/NavMeshAPI stays in built-inUnityEngine.AI.
NavMeshObstacle), or checking whether a destination is reachable.NavMeshSurface component, or scripts
using UnityEngine.AI.NavMeshAgent.When not to use: the decision logic of when/where to move (FSMs, behaviour trees,
steering) → game-ai (this skill is the Unity movement/pathing mechanism). Force-driven or
kinematic movement that isn't pathfinding → unity-physics.
com.unity.ai.navigation).NavMeshModifiers, or agent settings change.NavMeshAgent to each moving NPC; its radius/height/speed must match the baked
agent type, and it must spawn on the baked mesh.SetDestination(targetPos); the agent steers and avoids other
agents automatically. Detect arrival with remainingDistance/pathPending.NavMeshObstacle (carving) so closed doors/crates block
paths without a full re-bake.NavMeshPath.status for
unreachable targets.NavMeshSurface component + Bake.NavMesh.SamplePosition to snap).NavMeshObstacle (carving) or a surface.BuildNavMesh() re-bake.SetDestination every frame is wasteful — for a slow-moving target, re-path on a timer
(e.g. every 0.2s) instead of each frame.NavMeshAgent's size differs from the baked agent
type, it gets stuck in gaps or floats; keep them consistent.avoidancePriority and quality, or use an
obstacle for truly static blockers rather than relying on agent avoidance.https://docs.unity3d.com/Packages/com.unity.ai.navigation@2.0/manual/index.html) and
ScriptReference/AI.NavMeshAgent, ScriptReference/AI.NavMesh.game-ai — engine-agnostic decision-making (FSM, behaviour trees, steering) that uses this.unity-csharp-scripting — the MonoBehaviour structure around the agent.tower-defense / fps-shooter — genres that compose pathfinding with gameplay.using UnityEngine.AI;
public bool CanReach(NavMeshAgent agent, Vector3 destination)
{
var path = new NavMeshPath();
agent.CalculatePath(destination, path);
return path.status == NavMeshPathStatus.PathComplete; // vs Partial / Invalid
}using Unity.AI.Navigation; // the package namespace (NavMeshSurface)
[SerializeField] private NavMeshSurface surface;
// After spawning level geometry, build the navmesh in code.
public void RebuildNav() => surface.BuildNavMesh();// Add a NavMeshObstacle (Carve = true) to a door/crate. While present it cuts a hole in the
// navmesh so agents route around it; remove/disable it to reopen the path — no re-bake needed.