assembly-definitions
Assembly definition management — when to create asmdefs, reference rules, Editor/Runtime/Test separation, platform filters, compilation speed optimization.
Unity navigation — NavMeshAgent configuration, NavMeshSurface, off-mesh links, dynamic obstacles, pathfinding patterns.
$ npx -y skills add XeldarAlz/everything-claude-unity --skill navmesh --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/navmeshContext preview
The summary Claude sees to decide when to auto-load this skill.
Unity navigation — NavMeshAgent configuration, NavMeshSurface, off-mesh links, dynamic obstacles, pathfinding patterns.
name: navmesh description: "Unity navigation — NavMeshAgent configuration, NavMeshSurface, off-mesh links, dynamic obstacles, pathfinding patterns." globs: ["**/*Nav*.cs", "**/*Pathfind*.cs", "**/*Agent*.cs"]
1. Add `NavMeshSurface` component to environment parent object 2. Click "Bake" to generate NavMesh 3. Add `NavMeshAgent` to moving characters
[SerializeField] private NavMeshAgent _agent;
private void Awake()
{
_agent = GetComponent<NavMeshAgent>();
_agent.speed = 3.5f;
_agent.acceleration = 8f;
_agent.angularSpeed = 120f;
_agent.stoppingDistance = 0.5f;
_agent.autoBraking = true;
}
public void MoveTo(Vector3 destination)
{
_agent.SetDestination(destination);
}private void Update()
{
if (_agent.pathPending) return; // Still calculating
switch (_agent.pathStatus)
{
case NavMeshPathStatus.PathComplete:
// Full path found
break;
case NavMeshPathStatus.PathPartial:
// Can only get partway — obstacle or unreachable
break;
case NavMeshPathStatus.PathInvalid:
// No path possible
break;
}
// Check if arrived
if (!_agent.pathPending && _agent.remainingDistance <= _agent.stoppingDistance)
{
// Arrived at destination
}
}public sealed class PatrolBehavior : MonoBehaviour
{
[SerializeField] private Transform[] _waypoints;
[SerializeField] private float _waitTime = 2f;
private NavMeshAgent _agent;
private int _currentWaypoint;
private float _waitTimer;
private void Update()
{
if (_agent.pathPending) return;
if (_agent.remainingDistance <= _agent.stoppingDistance)
{
_waitTimer -= Time.deltaTime;
if (_waitTimer <= 0f)
{
_currentWaypoint = (_currentWaypoint + 1) % _waypoints.Length;
_agent.SetDestination(_waypoints[_currentWaypoint].position);
_waitTimer = _waitTime;
}
}
}
}For jumps, ladders, teleporters — connections between disconnected NavMesh areas.
// Rebake at runtime (e.g., after terrain change) _navMeshSurface.BuildNavMesh(); // Or update only: _navMeshSurface.UpdateNavMesh(_navMeshSurface.navMeshData);
The ultimate Claude Code toolkit for Unity game development. A production-ready, plug-and-play system that gives Claude Code deep Unity expertise — from writing performant C# to building scenes, profiling performance, and triggering iOS/Android builds — all
Assembly definition management — when to create asmdefs, reference rules, Editor/Runtime/Test separation, platform filters, compilation speed optimization.
Structured commit trailers — adds Constraint, Rejected, Scope-risk, and Not-tested metadata to commit messages. Captures architectural decisions and known gaps…
Ambiguity gating — detects vague feature requests and forces structured requirements gathering with scoring across scope, platform, performance, integration,…
Event system patterns — C# events, UnityEvent, SO event channels, static EventBus. When to use each, zero-allocation patterns, memory leak prevention.
Configures Claude Code's statusline to display Unity workflow state — current phase, active agent, files modified, and session duration.
Post-debugging knowledge extraction — captures non-obvious, codebase-specific learnings that pass quality gates. Invoke after resolving tricky bugs or…