用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/Besty0728/Unity-Skills --skill unity-ui命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Automate the Unity Editor through a local REST API — create and edit scripts, build scenes and prefabs, manage assets/materials/lighting, run tests, and drive hundreds of Editor operations across modules. Use when the user wants to actually operate the Unity Editor from chat — create or modify GameObjects/scripts/scenes/assets, batch-edit, or run Editor automation — in any language. Not needed for conceptual Unity Q&A that touches no Editor state — read the matching advisory doc under skills/ instead. 当用户要从对话里实际操作 Unity 编辑器(创建/修改/批量编辑/运行测试)时使用,任何语言均可触发;纯概念问答无需本协议。
Unified batch and async-job orchestration
Index of all Unity Skills modules with per-module mode labels (SA/FA/Mixed). Use to find which module covers a task before loading its doc.
基于 SOC 职业分类
正在显示 SKILL.md
| name | unity-ui |
| description | Create and lay out Unity UGUI screens |
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.
Use this module for Unity UGUI / Canvas workflows. It is separate from UI Toolkit.
Batch-first: Prefer
ui_create_batchwhen creating2+UI elements.
ui_find_all,源码标 SkillMode.SemiAuto)直接执行;其余创建/修改类(ui_create_* / ui_set_* / ui_add_* / ui_layout_children / ui_align_selected 等,标 SkillMode.FullAuto)需用户 grant,grant 后服务端一步执行返结果。gameobject 模块。DO NOT (common hallucinations):
ui_add_canvas does not exist -> use ui_create_canvasui_create_label does not exist -> use ui_create_textui_create_checkbox does not exist -> use ui_create_toggleui_set_color does not exist -> use component_set_property on Image/Text, or the dedicated UI property skills when availableui) with UI Toolkit (uitoolkit)Routing:
uitoolkitxr_setup_ui_canvasui_set_textui_layout_children, ui_align_selected, ui_distribute_selected| Skill | Use | Key parameters |
|---|---|---|
ui_create_canvas | Create Canvas | name?, renderMode? |
ui_create_panel | Create panel container | name?, parent?, r/g/b/a? |
ui_create_button | Create button | name?, parent?, text?, width/height? |
ui_create_text | Create text label | name?, parent?, text?, fontSize?, r/g/b? |
ui_create_image | Create image | name?, parent?, spritePath?, width/height? |
ui_create_inputfield | Create input field | name?, parent?, placeholder?, width/height? |
ui_create_slider | Create slider | name?, parent?, minValue?, maxValue?, value? |
ui_create_toggle | Create toggle | name?, parent?, label?, isOn? |
ui_create_dropdown | Create dropdown | name?, parent?, options?, width/height? |
ui_create_scrollview | Create ScrollRect hierarchy | name?, parent?, width/height?, horizontal?, |
| Skill | Use | Key parameters |
|---|---|---|
ui_find_all | Find scene UI elements | uiType?, limit? |
ui_set_text | Update text content | name, text |
ui_set_rect | Set RectTransform size/offsets | target, width, height, posX, posY, left/right/top/bottom? |
ui_get_rect_transform | Read full RectTransform data | target |
ui_set_rect_transform | Set full RectTransform data | anchors, pivot, offsets, local transform, width/height |
ui_set_rect_transform_batch | Set full RectTransform data for multiple elements | items |
ui_set_anchor | Apply anchor preset | target, preset?, setPivot? |
ui_layout_children | Vertical/Horizontal/Grid layout | target, layoutType?, spacing? |
ui_align_selected | Align current selection | alignment? |
ui_distribute_selected | Distribute current selection | direction? |
| Skill | Use | Key parameters |
|---|---|---|
ui_set_image | Image type/fill/sprite | target, type?, fillMethod?, fillAmount?, spritePath? |
ui_add_layout_element | Add LayoutElement constraints | target, width/height prefs, flex values |
ui_add_canvas_group | Add CanvasGroup | target, alpha?, interactable?, blocksRaycasts? |
ui_add_mask | Add Mask or RectMask2D | target, maskType?, showMaskGraphic? |
ui_add_outline | Add Shadow/Outline effect | target, effectType?, r/g/b/a?, distanceX/Y? |
ui_configure_selectable | Configure transitions/navigation/colors | target, transition?, navigationMode?, color values |
ui_create_canvas defaults to ScreenSpaceOverlay.parent; if omitted, Unity will create under the active Canvas or scene root depending on the implementation context.| Skill | High-frequency fields |
|---|---|
ui_create_button | text, width, height |
ui_create_text | text, fontSize, r/g/b |
ui_create_image | spritePath, width, height |
ui_create_slider | minValue, maxValue, value |
ui_create_toggle | label, isOn |
ui_create_dropdown | options |
ui_create_scrollview | horizontal, vertical, movementType |
Important:
x/y placement.ui_set_rect, ui_set_anchor, or ui_layout_children.Use ui_set_rect_transform when you need Inspector-level RectTransform coverage instead of a preset.
| Skill | Parameters |
|---|---|
ui_get_rect_transform | name, instanceId, path |
ui_set_rect_transform | target + anchorMinX/Y, anchorMaxX/Y, pivotX/Y, anchoredPosX/Y/Z, sizeDeltaX/Y, offsetMinX/Y, offsetMaxX/Y, localPosX/Y/Z, localRotX/Y/Z, localScaleX/Y/Z, width, height |
ui_set_rect_transform_batch | items JSON array with the same per-target fields |
Get full RectTransform data for a UI element.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
name | string | No* | null | GameObject name |
instanceId | int | No* | 0 | GameObject instance ID |
path | string | No* | null | Hierarchy path |
Returns: { success, name, instanceId, path, anchorMin, anchorMax, pivot, anchoredPosition3D, sizeDelta, offsetMin, offsetMax, localPosition, localEulerAngles, localScale, rect }
Set full RectTransform data for a UI element.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
name | string | No* | null | GameObject name |
instanceId | int | No* | 0 | GameObject instance ID |
path | string | No* | null | Hierarchy path |
anchorMinX / anchorMinY | float | No | null | Anchor min |
anchorMaxX / anchorMaxY | float | No | null | Anchor max |
pivotX / pivotY | float | No | null | Pivot |
anchoredPosX / anchoredPosY / anchoredPosZ | float | No | null | Anchored position 3D |
sizeDeltaX / sizeDeltaY | float | No | null | Size delta |
offsetMinX / offsetMinY | float | No | null | Offset min |
offsetMaxX / offsetMaxY | float | No | null | Offset max |
localPosX / localPosY / localPosZ | float | No | null | Local position |
localRotX / localRotY / localRotZ | float | No | null | Local euler rotation |
localScaleX / localScaleY / localScaleZ | float | No | null | Local scale |
Returns: same shape as ui_get_rect_transform.
Set full RectTransform data for multiple UI elements.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
items | json string | Yes | - | JSON array of per-item target and RectTransform fields |
Returns: { success, totalItems, successCount, failCount, results }
ui_set_anchor is the fastest way to move a control into a standard layout position.ui_set_rect is better for precise size/offset edits after anchoring.ui_layout_children is preferred over hand-positioning every child when building vertical, horizontal, or grid menus.Anchor presets commonly used in production:
MiddleCenter for modal/menu panelsTopLeft or TopRight for HUD cornersStretchAll for full-screen backgroundsText creation auto-detects TMP:
TextMeshProUGUITextRead the response payload if you need to know which one was created before later component-specific edits.
ui_create_batch for menus, HUD groups, and repeated widgets.ui_create_batch is mainly for bulk creation, not precise positioning. Follow it with layout or rect/anchor adjustments.ui_create_batch.items is a JSON string parameter in the current REST/API layer, not a raw array object.import unity_skills
import json
unity_skills.call_skill("ui_create_canvas", name="MainMenu")
unity_skills.call_skill("ui_create_panel", name="MenuPanel", parent="MainMenu", a=0.7)
unity_skills.call_skill("ui_set_rect", name="MenuPanel", width=320, height=240)
unity_skills.call_skill("ui_create_batch", items=json.dumps([
{"type": "Button", "name": "StartBtn", "parent": "MenuPanel", "text": "Start", "width": 220, "height": 44},
{"type": "Button", "name": "OptionsBtn", "parent": "MenuPanel", "text": "Options", "width": 220, "height": 44},
{"type": "Button", "name": "QuitBtn", "parent": "MenuPanel", "text": "Quit", "width": 220, "height": 44}
]))
unity_skills.call_skill("ui_set_anchor", name="MenuPanel", preset="MiddleCenter")
unity_skills.call_skill(, name=, layoutType=, spacing=)
Exact names, parameters, defaults, and returns are defined by GET /skills/schema or unity_skills.get_skill_schema(), not by this file.
Load UI_REFERENCE.md for extended element creation details, property tables, and larger UGUI examples.
Full transport-level codes (COMPILING/RATE_LIMIT etc.) → ../../references/protocol-error-codes.md
| Error | Trigger | Fix |
|---|---|---|
TARGET_NOT_FOUND | The parent GameObject, UI element, RectTransform, Text/Image/Selectable component, or sprite asset could not be found. | Use ui_find_all, gameobject_find, or scene_get_hierarchy to locate the element, and verify sprite paths with asset_find. |
SEMANTIC_INVALID | An invalid value was supplied, such as an unknown anchor preset, layout type, alignment, or name/path with separators. | Choose a valid preset/type from the error context (e.g., MiddleCenter, Vertical, TopLeft) and retry. |
SKILL_ERROR | A selection-based operation failed because fewer than the required number of UI elements were selected (e.g., Select at least 2 UI elements). | Select the required UI elements in the Hierarchy before calling alignment/distribution skills. |
vertical?ui_create_rawimage | Create RawImage | name?, parent?, texturePath?, width/height? |
ui_create_scrollbar | Create scrollbar | name?, parent?, direction?, value?, size? |
ui_create_batch | Create multiple UI elements | items (JSON string array) |
width / height |
| float |
| No |
| null |
| Size with current anchors |