Install
$ agentstack add skill-gamedev-skills-awesome-gamedev-agent-skills-unity-navmesh ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Unity NavMesh (AI Navigation)
Give NPCs pathfinding in Unity 6: bake walkable surfaces and move agents around obstacles. Targets Unity 6 (6000.0 LTS) 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 runtime NavMeshAgent/NavMesh API stays in built-in UnityEngine.AI.
When to use
- Use when an agent needs to walk/chase/patrol to a target, when baking a navigable surface,
adding dynamic blockers (NavMeshObstacle), or checking whether a destination is reachable.
- Use when the project has the AI Navigation package, a
NavMeshSurfacecomponent, 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.
Core workflow
- Install the AI Navigation package (Package Manager →
com.unity.ai.navigation). - Bake a surface: select the static level geometry, **Add Component → Navigation → NavMesh
Surface, set the agent type/area settings, and click Bake**. Re-bake whenever geometry, NavMeshModifiers, or agent settings change.
- Add a
NavMeshAgentto each moving NPC; its radius/height/speed must match the baked
agent type, and it must spawn on the baked mesh.
- Drive it from script with
SetDestination(targetPos); the agent steers and avoids other
agents automatically. Detect arrival with remainingDistance/pathPending.
- Handle dynamic blockers with
NavMeshObstacle(carving) so closed doors/crates block
paths without a full re-bake.
- Verify with the AI Navigation overlay (the baked mesh is drawn in the Scene view) and by
watching agents path around obstacles to the goal; check NavMeshPath.status for unreachable targets.
Patterns
1. Chase/seek with a NavMeshAgent
using UnityEngine;
using UnityEngine.AI;
[RequireComponent(typeof(NavMeshAgent))]
public class Chaser : MonoBehaviour
{
[SerializeField] private Transform target;
private NavMeshAgent _agent;
private void Awake() => _agent = GetComponent();
private void Update()
{
if (target) _agent.SetDestination(target.position); // re-path toward the target
}
// Arrived? pathPending guards the first frame before a path exists.
private bool HasArrived() =>
!_agent.pathPending && _agent.remainingDistance surface.BuildNavMesh();
4. Dynamic obstacle that carves the mesh
// 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.
Pitfalls
- Looking for the Navigation window — it no longer exists in Unity 6. Use the AI Navigation
package's NavMeshSurface component + Bake.
- Agent doesn't move / warps to origin — it isn't on the baked mesh, or no surface was
baked. Bake the surface and spawn the agent on it (NavMesh.SamplePosition to snap).
- Agent ignores new geometry — the navmesh is baked; runtime-spawned obstacles need a
NavMeshObstacle (carving) or a surface.BuildNavMesh() re-bake.
SetDestinationevery frame is wasteful — for a slow-moving target, re-path on a timer
(e.g. every 0.2s) instead of each frame.
- Agent radius/height mismatch — if the
NavMeshAgent's size differs from the baked agent
type, it gets stuck in gaps or floats; keep them consistent.
- Agents jitter against each other — tune
avoidancePriorityand quality, or use an
obstacle for truly static blockers rather than relying on agent avoidance.
References
- Primary docs: AI Navigation package manual
(https://docs.unity3d.com/Packages/com.unity.ai.navigation@2.0/manual/index.html) and ScriptReference/AI.NavMeshAgent, ScriptReference/AI.NavMesh.
Related skills
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.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: gamedev-skills
- Source: gamedev-skills/awesome-gamedev-agent-skills
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.