Sprite Editor
Sprite metadata (rects, borders, pivots, outlines) lives inside the importer, not in a file
you can edit — reaching it means running C# through a live Editor.
The skill owns getting you there — installing the CLI, confirming a connected
Editor, adding the project's
package, telling a genuinely absent Editor
apart from one stuck in Safe Mode, and discovering the Editor's command catalog. Follow it
first; don't re-derive any of it here.
Two things it can't know for you:
- You need in particular, not just a reachable Editor. Confirm it appears in the
catalog — its presence depends on the Pipeline package version, not on the CLI.
- Never hand-edit a file to change sprite metadata. The importer owns that data
and the capability checks below exist to prevent corruption, so an unreachable Editor is a
stop, not a cue to improvise.
Run C# through the connected Editor with the
command. Discover its parameter shape
from
unity command --format json
rather than assuming one — the inline form is
unity command eval --code '<snippet>'
, and some Pipeline versions also register
for running a snippet from a file.
Check the catalog before reaching for
; it is frequently absent. defaults to a 30 second timeout.
Generates C# editor scripts to manipulate Unity sprites using ISpriteEditorDataProvider. Works with TextureImporter, PSBImporter, and custom importers.
Passing C# to
compiles a
statement block, not a file. Two consequences, both of which cause a
compile error rather than a warning:
- No directives. The compiler reads as a resource-disposal
statement and rejects it ().
- Types must be fully qualified. A bare or does not resolve
( / ), and a bare is ambiguous with ().
Where a snippet below is written as a file — with usings, for readability, or because it is
meant to be saved into the project — qualify the types before passing it to
.
Workflow
All generated scripts must follow the Safe Core Pattern in references/templates.md, which includes MANDATORY capability checks. NEVER attempt operations if capability checks fail - this prevents data corruption. After execution, verify results in Unity console and Project window.
Common Operations
Modify Name/Rect/Border/Pivot: Update corresponding
fields (see scripts/SetPivotExample.cs for pivot examples)
Add/Remove/Slice: Create or filter
array (see
references/background.md for Unity 2021.2+ requirements)
Set Outlines: Get
ISpriteOutlineDataProvider
→ Call
with GUID + Vector2 arrays
Important Notes
- Do NOT use AssetPostprocessor or MenuItem patterns
- Generate standalone snippets only — no , no
- Enum assignments: Always use enum values and cast to numeric types. Never use raw numbers.
- ✅ Correct:
(int)SpriteAlignment.Center
- ❌ Wrong: (magic number)