{"id":"0745200f-0a72-478b-ad50-50ae8b347a0c","slug":"unity-2d-expert","kind":"skill","name":"unity-2d-expert","summary":"A Claude Agent Skill: documentation-grounded, editor-confirmed Unity 6 (URP) 2D expertise — sprites & PPU, sorting/Y-sort, tilemaps (Chunk/Individual/SRP-Batch), rendering performance & batching, 2D p","owner":"TCLowe1982","repoUrl":"https://github.com/TCLowe1982/unity-2d-expert","license":"MIT","licenseTier":"permissive","trust":"community","stars":1,"match":null,"fewStars":true,"format":"skill","createdAt":"2026-07-01T18:51:50.000Z","addedAt":"2026-10-21T12:53:54.620Z","logoUrl":"https://avatars.githubusercontent.com/u/111537227?u=a5b0198dde2741a652a8d8a7cf5729de0d415dd4&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["developer-tools","writing"],"tags":["claude","claude-code","game-development","gamedev","tilemap","unity","unity2d","unity6"],"runtime":"binary","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-23T05:48:11.618Z","sample":false,"url":"https://conduits.dev/tools/unity-2d-expert","language":"","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# Unity 2D Expert — a Claude skill\n\nA drop-in **[Agent Skill](https://docs.claude.com/en/docs/agents-and-tools/agent-skills/overview)**\nthat gives Claude (Claude Code / the Agent SDK) working expertise in **Unity 6 (URP)\n2D game development** — sprites & pixels-per-unit, sorting and per-sprite Y-sort,\ntilemaps (Chunk vs Individual vs SRP-Batch, chunk culling, colliders), rendering\nperformance & batching, 2D physics, 2D lighting, and pixel-art setup.\n\nIt's **documentation-grounded but editor-confirmed**: every rule traces to the official\nUnity 6000.0 docs (source URLs kept in `reference/`), and wherever real Unity Editor\nbehavior diverged from a documented default or a common assumption, the observation was\n**verified in-editor and flagged for review** rather than trusted blindly.\n\n> I couldn't find a good Unity-2D skill for Claude anywhere, so this is an attempt at a\n> solid, honest first one. PRs with more editor-confirmed facts welcome.\n\n## What's inside\n\n```\nSKILL.md                              # the actionable decision layer Claude reads first\nreference/\n  sprites.md                          # Sprite Renderer, PPU, atlas, 9-slice, masks, import\n  sorting-and-cameras.md              # draw-order chain, Y-sort recipe, sorting groups, Pixel Perfect\n  tilemaps.md                         # Grid/Tilemap/Renderer, Chunk/Individual, culling, colliders, API\n  performance-and-batching.md         # SRP Batcher / GPU instancing / static+dynamic, hard limits, pooling\n  physics-lighting-animation.md       # Rigidbody/Collider 2D, Light 2D, Sprite Shape, 2D Animation\n  observed-vs-documented.md           # editor-CONFIRMED observations, incl. divergences [REVIEW]\n```\n\n`SKILL.md` is a tight ~1-page decision layer; the `reference/` files hold **500+ sourced\nfacts** (every field, enum, default, gotcha) so Claude can drill in when a task needs it.\n\n## Highlights it gets right (that trip people up)\n\n- **`TilemapRenderer.Mode`** — Chunk (default: batched, chunk-culled, but *can't* interleave\n  sprites or sort tiles across multiple textures → use one atlas) vs Individual (per-tile\n  sort, characters render *between* tiles, slower) vs SRP-Batch (SRP-Batcher-compatible).\n- **A single Tilemap can't overlap sprites** (1 tile/cell) — overlapping props need\n  Individual mode or **N stacked tilemaps as depth strata**, or SpriteRenderers.\n- **Per-sprite Y-sort recipe** — Transparency Sort Mode = Custom Axis, axis `(0,1,0)`,\n  Sort Point = Pivot; isometric Z-as-Y uses `(0,1,-0.26)`.\n- **The many-sprite count trap** — off-screen sprites are auto-culled, but ~10k\n  SpriteRenderer GameObjects still cost real per-frame overhead; static content belongs\n  in tilemaps, thousands of dynamic sprites want pooling/instancing.\n- **SRP Batcher doesn't reduce draw-call *count*** — it cuts per-draw CPU cost.\n- **Editor-confirmed divergence:** in a Unity 6 **2D URP** project, a fresh PNG imports\n  as `Sprite`/Point/mips-off/Clamp/Uncompressed/PPU 100 — the pixel-art defaults are\n  already set; the real gotcha is `maxTextureSize` silently downscaling large atlases.\n\n## Install\n\nClone into your Claude skills folder:\n\n```bash\n# user-level (available in every project)\ngit clone https://github.com/TCLowe1982/unity-2d-expert \\\n  ~/.claude/skills/unity-2d-expert\n\n# or project-level (committed with a specific repo)\ngit clone https://github.com/TCLowe1982/unity-2d-expert \\\n  <your-project>/.claude/skills/unity-2d-expert\n```\n\nClaude auto-discovers it. It triggers on Unity 2D work (tilemaps, sprite sorting/overlap,\nPPU, draw-call/perf questions, 2D lighting, Pixel Perfect, …) or invoke it directly with\n`/unity-2d-expert`.\n\n## How it was built\n\nAssembled with the **[ledger pattern](https://github.com/TCLowe1982/ledger-pattern)**\n(extraction branch): the Unity 6000.0 2D documentation was split into topic clusters,\neach processed independently into a durable on-disk fact-ledger with source URLs, then\nassembled into `SKILL.md` + `reference/`. Key defaults and \"docs don't state this\" gaps\nwere then **confirmed against a live Unity 6000.4 editor** and recorded in\n`reference/observed-vs-documented.md`.\n\n## The discipline: doc-first, editor-confirmed\n\nRules are sourced from the docs. Where an editor observation contradicts a documented\ndefault or common assumption, the observation wins **only after being reproduced in the\neditor**, and it's tagged so a human can review it:\n\n- `[confirms-docs]` · `[extends-docs]` · `[diverges — REVIEW]` · `[third-party]`\n\nIf you add facts, keep that discipline: cite the doc URL, or mark it `[diverges — REVIEW]`\nwith how you confirmed it.\n\n## Attribution\n\nThe `reference/` material distills **Unity's official documentation** (Unity 6000.0\nManual & Scripting Reference — every bullet links its source page). Unity, the Unity\nengine, and its documentation are © Unity Technologies. This repository is an independent,\nfactual study aid and is not affiliated with or endorsed by Unity Technologies.\n\n## License\n\nMIT — see [LICENSE](LICENSE). (Applies to the skill's structure and original writing; the\nunderlying Unity facts are, well, facts, and belong to their documented source.)\n"}