addressables-design
Source-anchored design rules for Unity Addressables 1.22.3/2.9.1
Control and observe the Unity Editor state
$ npx -y skills add Besty0728/Unity-Skills --skill editor --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/editorContext preview
The summary Claude sees to decide when to auto-load this skill.
Control and observe the Unity Editor state
name: unity-editor description: Control and observe the Unity Editor state
> **Before calling any skill in this module:** if you are about to call a skill with parameters guessed from its name or description, STOP — read this file (or fetch its schema via `GET /skills/recommend?includeSchema=true`) first. If you already have the parameter definitions from recommend/schema, you may proceed straight to dryRun.
Observe and control the Unity Editor without parsing scene YAML.
**DO NOT** (common hallucinations):
**Routing**:
| Skill | Description | |-------|-------------| | `editor_play` | Enter play mode | | `editor_play_capture` | Observe runtime errors, optionally screenshot, then exit | | `editor_stop` | Exit play mode | | `editor_pause` | Toggle pause | | `editor_playmode_step` | Advance Play Mode by N frames (async job) | | `editor_playmode_inspect` | Inspect a GameObject's live runtime state (transform, component fields) | | `editor_select` | Select GameObject | | `editor_get_selection` | Get selected objects | | `editor_get_context` | Get full editor context (selection, assets, scene) | | `editor_get_changes` | Read persistent scene/file changes by cursor | | `editor_undo` | Undo last action | | `editor_redo` | Redo last action | | `editor_get_state` | Get editor state | | `editor_execute_menu` | Execute menu item | | `editor_get_tags` | Get all tags | | `editor_get_layers` | Get all layers | | `console_set_pause_on_error` | Pause play mode on error (console module) |
---
Enter play mode. Warning: any unsaved scene changes made during Play mode will be lost when exiting.
**Returns**: `{success, mode, jobId}` — `mode="playing"`, `jobId` returned from `AsyncJobService` so callers can poll `entering_play_mode` completion.
Enter Play Mode, observe errors for `durationSeconds` (default 10, range 1–300), optionally capture the Game View, then exit. Returns a Job whose result includes `healthy`, error aggregates, `stoppedEarly`, and `screenshotPath`.
Exit play mode.
**Returns**: `{success, mode}` — `mode="stopped"`.
Toggle pause state.
**Returns**: `{success, paused}` — `paused` is the new boolean state.
Advance Play Mode forward by `frames` (1–100, default 1) using `EditorApplication.Step`; Unity automatically enters paused state as part of stepping. Requires Play Mode to already be active — call `editor_play` or `editor_play_capture` first, otherwise this returns a structured error (`error` + `hint` + `suggestedSkills: ["editor_play", "editor_play_capture"]`). Only one step job may be in flight at a time; a second call while one is still running returns an error naming the active `jobId`.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | `frames` | int | No | 1 | Frames to advance, clamped to 1–100 |
**Runs as an async job, not synchronously**: `EditorApplication.Step()` only lands on a later Editor tick, so the skill issues one `Step()` call at a time, confirms it landed by watching `Time.frameCount` advance, and only then issues the next — back-to-back `Step()` calls without that confirmation are not reliable. The call itself returns immediately: `{success, status: "accepted", jobId, framesRequested}`.
Poll `job_status` with the returned `jobId` until `status="completed"`; its `details` then contains `{framesRequested, framesCompleted, frameCount, isPaused}`. **Do not use `job_wait`** — like `playmode`/`play_capture`, this job's progress depends on `EditorApplication.update` ticks, and `job_wait`'s blocking loop runs on the same main thread those ticks come from, so it cannot observe progress; it will just spend its full timeout doing nothing. If Play Mode exits or Unity fails to advance a frame within 10s, the job fails with `failed_exited_play_mode` / `failed_step_timeout`.
Inspect a GameObject's live runtime state: transform (position/rotation/scale), `activeSelf`/`activeInHierarchy`, and — when `componentType` is given — that component's public fields and properties (reuses the same reflection helper as `component_get_properties`, not reimplemented).
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+.
Source-anchored design rules for Unity Addressables 1.22.3/2.9.1
Manage Addressables groups, entries, profiles and content builds (com.unity.addressables, reflection-based)