Tooling Index
Install-once Editor script templates live under ../../tooling/<domain>/. Check here before writing a new Editor script from scratch.
When to Use
Reach for tooling/ when the task needs a persistent Editor-side helper rather than a one-shot Unity_RunCommand body. Signals:
- About to paste a
[MenuItem("Tools/...")]script viaUnity_CreateScript. - Need a tool the user re-runs from the Editor menu later (screenshots, exporters, custom build steps, batch operations).
- A recipe in
recipes/<domain>/carries a "Prerequisite: install Editor script" note pointing attooling/<domain>/.
Do NOT use for one-shot operations — those belong in recipes/<domain>/ and run through Unity_RunCommand.
Routing
- Open
../../tooling/<domain>/README.mdfor the domain that matches the task (e.g.tooling/ui/). - If a matching tool exists, install via
Unity_CreateScriptat the path the tool file specifies. - Wait for Unity to recompile — poll
EditorApplication.isCompiling(see UI Authoring Loop Phase 1 in../ui/SKILL.md). - Call the installed menu items via
EditorApplication.ExecuteMenuItem.
If no tool covers the case, write one — but check first.
Available domains
| Domain | Folder | Tools |
|---|---|---|
| test | ../../tooling/test/ |
test_runner_tool |
| ui | ../../tooling/ui/ |
ui_screenshot_tool |
Common Mistakes
- Pasting a
tooling/C# block intoUnity_RunCommand. These are install-once Editor scripts, notIRunCommandbodies — they will not compile in the RunCommand context. Always install viaUnity_CreateScriptat the path the tool file specifies. - Calling
EditorApplication.ExecuteMenuItemimmediately after install. Unity needs to recompile the new script before the menu items register. PollisCompilingfirst. - Treating
tooling/files as compile/run-gated likerecipes/. They have no validation gate — install into a scratch project once before trusting at scale.