Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when Unity UI needs layout-focused implementation or repair through `unity-mcp`: attached UI mockup, mockup screenshot, uploaded design image, dropped design image, reference image, wireframe, or UI 시안; analyze visual layers into a layer-to-Transform tree/레이어 트리 구조; map item-level UI rects; turn or convert into UGUI/UI Toolkit; create Unity UI prefabs/프리팹 생성; or fix drift, safe area, text overflow, structured exports, tokens, or shared prefab reuse.
.claude/skills/bilal140202-unity-mcp-ui-layout/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-15 | ✗→✓ | ▲ Improved | 163% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 148% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 94% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 113% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 104% | 0% |
Use this skill for Unity UI work where layout stability matters more than raw pixel imitation. The core idea is to translate visual intent into anchors, containers, scaling rules, text behavior, and verification loops that survive resolution changes.
Bias: Prefer stable structure, scoped changes, and explicit verification over one-shot mockup mimicry. For trivial one-widget nudges, use judgment rather than forcing the full workflow mechanically.
DESIGN.md, design_tokens.json, Tailwind theme, or similar design-system source should guide Unity UI styling.Choose these four boundaries before editing anything:
Canvas, RectTransform, CanvasScaler, LayoutGroup, Image, or TextMeshProUGUI.UIDocument, UXML, USS, VisualElement, or PanelSettings.For the full decision guide, read references/ui-change-modes.md.
DESIGN.md, design tokens, Tailwind theme values, or a design-system document, read it before styling.For design-system intake and mapping rules, read references/design-system-intake.md and references/design-token-to-unity.md. For structured export intake and hierarchy mapping, read references/stitch-html-to-ugui.md and references/figma-node-tree-to-ugui.md.
unity-resource-rag, asset catalogs, or asset indexes is a supported fallback, not an error condition.unity-mcp or an equivalent MCP bridge.DESIGN.md or token source is present, style decisions should be traced back to that source where practical.@google/design.md CLI checks are useful when available, but missing CLI tooling is a supported fallback.UIDocument before editing.Canvas, CanvasScaler, parent RectTransform, layout components, and safe-area handling.UIDocument, linked UXML, linked USS, panel settings, and container ownership.The test: If two reasonable interpretations exist for stack, repair scope, reference resolution, or reuse expectations, do not silently pick one.
The test: If you are reaching for pixel nudges before checking the parent structure, you are probably fixing the symptom instead of the cause.
RawImage for texture-driven content such as RenderTexture, video, or runtime-generated textures.The test: If a structure appears once, do not abstract it yet. If a change is screen-specific, shared-base edits need proof.
The test: If you cannot name the screenshot, aspect-ratio, text, and error checks that prove success, the task is not done yet.
Do not call the task done until every applicable check below passes:
references/layout-checklist.mdreferences/common-failures.mdreferences/review-checks.mdreferences/scroll-view-patterns.mdreferences/ui-change-modes.mdreferences/design-system-intake.mdreferences/design-token-to-unity.mdreferences/stitch-html-to-ugui.mdreferences/figma-node-tree-to-ugui.mdreferences/image-to-layout.mdreferences/mockup-decomposition.mdreferences/mockup-resolution.mdreferences/mockup-safe-area-mapping.mdreferences/mobile-device-profiles.mdreferences/asset-discovery-priority.mdreferences/existing-prefab-reuse.mdreferences/prefab-reuse.mdreferences/prefab-variants.mdreferences/shared-asset-edit-safety.mdreferences/shared-asset-verification-recipes.mdreferences/asset-naming-and-folders.mdreferences/asset-naming-examples.mdreferences/text-layout-rules.mdreferences/sprite-vs-rawimage.mdreferences/ugui-anchors-canvas-scaler.mdreferences/ugui-hud.mdreferences/ugui-inventory.mdreferences/ugui-popup.mdreferences/ugui-mobile-safe-area.mdreferences/ui-toolkit-layout-rules.mdreferences/ui-toolkit-failures.mdreferences/mcp-call-recipes.mdreferences/prompt-patterns.md| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-05 | fail→fail | 26,042 | 15,557 | -40% | 1 | 1 | 0% | 6,058 | 6,737 | +11% | 0 | 0 | — |
case-15 | fail→pass | 8,850 | 4,147 | -53% | 1 | 1 | 0% | 1,448 | 3,811 | +163% | 0 | 0 | — |
case-01 | fail→fail | 23,169 | 3,629 | -84% | 1 | 1 | 0% | 5,078 | 3,507 | -31% | 0 | 0 | — |
case-02 | fail→fail | 18,783 | 2,842 | -85% | 1 | 1 | 0% | 3,704 | 3,601 | -3% | 0 | 0 | — |
case-03 | fail→fail | 22,013 | 3,549 | -84% | 1 | 1 | 0% | 4,942 | 3,397 | -31% | 0 | 0 | — |
case-04 | fail→fail | 15,371 | 15,014 | -2% | 1 | 1 | 0% | 3,652 | 6,826 | +87% | 0 | 0 | — |
case-06 | fail→fail | 15,839 | 13,463 | -15% | 1 | 1 | 0% | 2,761 | 5,399 | +96% | 0 | 0 | — |
case-07 | pass→pass | 14,980 | 10,957 | -27% | 1 | 1 | 0% | 2,800 | 4,965 | +77% | 0 | 0 | — |
case-08 | fail→pass | 10,262 | 6,035 | -41% | 1 | 1 | 0% | 1,689 | 4,192 | +148% | 0 | 0 | — |
case-09 | pass→pass | 11,887 | 2,285 | -81% | 1 | 1 | 0% | 1,966 | 3,481 | +77% | 0 | 0 | — |
case-10 | pass→pass | 10,129 | 7,936 | -22% | 1 | 1 | 0% | 1,575 | 4,562 | +190% | 0 | 0 | — |
case-11 | pass→pass | 9,121 | 6,799 | -25% | 1 | 1 | 0% | 1,677 | 4,288 | +156% | 0 | 0 | — |
case-12 | fail→pass | 13,771 | 10,487 | -24% | 1 | 1 | 0% | 2,520 | 4,893 | +94% | 0 | 0 | — |
case-13 | fail→pass | 14,629 | 12,970 | -11% | 1 | 1 | 0% | 2,535 | 5,411 | +113% | 0 | 0 | — |
case-14 | pass→pass | 7,546 | 4,765 | -37% | 1 | 1 | 0% | 1,404 | 3,968 | +183% | 0 | 0 | — |
case-16 | pass→pass | 10,679 | 8,146 | -24% | 1 | 1 | 0% | 1,660 | 4,530 | +173% | 0 | 0 | — |
case-17 | pass→pass | 12,213 | 10,850 | -11% | 1 | 1 | 0% | 2,186 | 4,959 | +127% | 0 | 0 | — |
case-18 | pass→pass | 5,103 | 2,940 | -42% | 1 | 1 | 0% | 778 | 3,598 | +362% | 0 | 0 | — |
case-19 | fail→pass | 11,146 | 1,953 | -82% | 1 | 1 | 0% | 1,685 | 3,442 | +104% | 0 | 0 | — |
case-20 | pass→pass | 8,637 | 3,633 | -58% | 1 | 1 | 0% | 1,462 | 3,804 | +160% | 0 | 0 | — |
case-21 | pass→pass | 10,085 | 7,740 | -23% | 1 | 1 | 0% | 1,747 | 4,374 | +150% | 0 | 0 | — |
case-22 | pass→fail | 15,595 | 4,823 | -69% | 1 | 1 | 0% | 2,436 | 3,833 | +57% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 20 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +18 percentage points is the difference between those two pass rates over the 20 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.