Skip to content
Development
Skill

/navmesh

Bake and query Unity NavMesh. 烘焙与查询 Unity NavMesh。

From plugin
unity-skills
1.6k74 skills5 commands
Install
$ npx -y skills add Besty0728/Unity-Skills --skill navmesh --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/navmesh

Context preview

The summary Claude sees to decide when to auto-load this skill.

Bake and query Unity NavMesh. 烘焙与查询 Unity NavMesh。

SKILL.md

navmesh.SKILL.md
name: unity-navmesh
description: Bake and query Unity NavMesh. 烘焙与查询 Unity NavMesh。

Triggers

  • Setting up navigation
  • Baking a NavMesh
  • Testing agent paths
  • Tuning bake parameters
  • 搭建导航、烘焙 NavMesh、测试 Agent 路径、调整烘焙参数

NavMesh Skills

Bake / clear NavMesh data, calculate paths, sample positions, and configure NavMeshAgent / NavMeshObstacle components.

Operating Mode

  • **Approval**:查询类 skill(`navmesh_calculate_path` / `navmesh_sample_position` / `navmesh_get_settings`,源码标 `SkillMode.SemiAuto`)直接执行;变更类(`navmesh_bake` / `navmesh_add_agent` / `navmesh_set_agent` / `navmesh_add_obstacle` / `navmesh_set_obstacle` / `navmesh_set_area_cost`,标 `SkillMode.FullAuto`)需用户 grant,grant 后服务端一步执行返结果。
  • **Auto / Bypass**:所有未被禁列表拦截的 skill 直接执行。
  • 本模块**含 Delete 类 skill**:`navmesh_clear` 标记为 `SkillOperation.Delete`,会被 `IsForbiddenInSemi` 静态拦截 —— 仅 **Bypass** 模式或将其加入 **Allowlist** 才能调用。
  • `navmesh_bake` 同步阻塞主线程;大场景可能很慢,调用前提醒用户。

**DO NOT** (common hallucinations):

  • `navmesh_create` does not exist → use `navmesh_bake` to generate NavMesh
  • `navmesh_add_agent_component` / `navmesh_set_agent_speed` do not exist → use `navmesh_add_agent` + `navmesh_set_agent` (convenience wrappers), or `component_add`/`component_set_property` for full control
  • NavMesh must be re-baked after scene geometry changes

**Routing**:

  • For NavMeshAgent/NavMeshObstacle components → use `component` module
  • For path calculation → `navmesh_calculate_path` (this module)

Skills

`navmesh_bake`

Bake the NavMesh (Synchronous). **Warning: Can be slow.** **Parameters:** None.

`navmesh_clear`

Clear the NavMesh data. **Parameters:** None.

`navmesh_calculate_path`

Calculate a path between two points. **Parameters:**

  • `startX`, `startY`, `startZ` (float): Start position.
  • `endX`, `endY`, `endZ` (float): End position.
  • `areaMask` (int, optional): NavMesh area mask.

**Returns:** `{ status, valid, distance, cornerCount, corners }`

  • `status`: NavMeshPathStatus string (`PathComplete` / `PathPartial` / `PathInvalid`)
  • `valid`: `true` only when `status == "PathComplete"`
  • `distance`: total path length (0 for invalid paths)
  • `cornerCount`: number of corner points in `corners`
  • `corners`: array of `{x, y, z}` waypoints (empty when no path)

`navmesh_add_agent`

Add NavMeshAgent component to an object.

| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | null | GameObject name | | instanceId | int | No | 0 | GameObject instance ID | | path | string | No | null | GameObject hierarchy path |

**Returns:** `{ success, gameObject }`

`navmesh_set_agent`

Set NavMeshAgent properties (speed, acceleration, radius, height, stoppingDistance).

| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | null | GameObject name | | instanceId | int | No | 0 | GameObject instance ID | | path | string | No | null | GameObject hierarchy path | | speed | float | No | null | Agent movement speed | | acceleration | float | No | null | Agent acceleration | | angularSpeed | float | No | null | Agent angular speed | | radius | float | No | null | Agent radius | | height | float | No | null | Agent height | | stoppingDistance | float | No | null | Distance to stop before target |

**Returns:** `{ success, gameObject, speed, radius }`

`navmesh_add_obstacle`

Add NavMeshObstacle component to an object.

| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | null | GameObject name | | instanceId | int | No | 0 | GameObject instance ID | | path | string | No | null | GameObject hierarchy path | | carve | bool | No | true | Enable carving |

**Returns:** `{ success, gameObject, carving }`

`navmesh_set_obstacle`

Set NavMeshObstacle properties (shape, size, carving).

| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | null | GameObject name | | instanceId | int | No | 0 | GameObject instance ID | | path | string | No | null | GameObject hierarchy path | | shape | string | No | null | Obstacle shape (e.g. Box, Capsule) | | sizeX | float | No | null | Obstacle size X | | sizeY | float | No | null | Obstacle size Y | | sizeZ | float | No | null | Obstacle size Z | | carving | bool | No | null | Enable carving |

**Returns:** `{ success, gameObject, shape, carving }`

`navmesh_sample_position`

Find nearest point on NavMesh.

| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | x | float | Yes | - | Source position X | | y | float | Yes | - | Source position Y | | z | float | Yes | - | Source position Z | | maxDistance | float | No | 10 | Maximum search distance |

**Returns:** `{ success, found, point: { x, y, z }, distance }`

`navmesh_set_area_cost`

Set area traversal cost.

| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | areaIndex | int | Yes | - | NavMesh area index | | cost | float | Yes | - | Traversal cost value |

**Returns:** `{ success, areaIndex, cost }`

`navmesh_get_settings`

Get NavMesh build settings.

**Parameters:** None.

**Returns:** `{ success, agentRadius, agentHeight, agentSlope, agentClimb }`

---

Exact Signatures

Exact names, parameters, defaults, and returns are defined by `GET /skills/schema` or `unity_skills.get_skill_schema()`, not by this file.

Read more
Ships withunity-skills

REST API-based AI-driven Unity Editor Automation Engine Let AI control Unity scenes directly through Skills 🎉 We are now indexed by DeepWiki! Got questions? Check out the AI-generated docs → The current official maintenance baseline is Unity 2022.3+.

Get the whole plugin