unity-ui
Unity UI Skills
Use this module for Unity UGUI / Canvas workflows. It is separate from UI Toolkit.
Batch-first: Prefer
ui_create_batchwhen creating2+UI elements.
Guardrails
Mode: Full-Auto required
DO NOT (common hallucinations):
ui_add_canvasdoes not exist -> useui_create_canvasui_create_labeldoes not exist -> useui_create_textui_create_checkboxdoes not exist -> useui_create_toggleui_set_colordoes not exist -> usecomponent_set_propertyonImage/Text, or the dedicated UI property skills when available- Do not confuse UGUI (
ui) with UI Toolkit (uitoolkit)
Routing:
- For UXML/USS/UIDocument -> use
uitoolkit - For XR-compatible world-space Canvas conversion -> use
xr_setup_ui_canvas - For text updates after creation -> use
ui_set_text - For layout and alignment -> use
ui_layout_children,ui_align_selected,ui_distribute_selected
Skills
Create Skills
| 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?, 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) |
Query and Layout Skills
| 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_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? |
Property and Effect Skills
| 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 |
High-Frequency Defaults
Canvas and Parenting
ui_create_canvasdefaults toScreenSpaceOverlay.- Most create skills accept
parent; if omitted, Unity will create under the active Canvas or scene root depending on the implementation context. - For reusable menu groups, create the Canvas once, then create a Panel and put all child controls under that panel.
Common Create Parameters
| 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:
- Most create skills do not take explicit
x/yplacement. - Create first, then place/anchor with
ui_set_rect,ui_set_anchor, orui_layout_children.
Layout and Anchoring Rules
ui_set_anchoris the fastest way to move a control into a standard layout position.ui_set_rectis better for precise size/offset edits after anchoring.ui_layout_childrenis preferred over hand-positioning every child when building vertical, horizontal, or grid menus.
Anchor presets commonly used in production:
MiddleCenterfor modal/menu panelsTopLeftorTopRightfor HUD cornersStretchAllfor full-screen backgrounds
TextMeshPro Note
Text creation auto-detects TMP:
- TMP available ->
TextMeshProUGUI - TMP unavailable -> legacy
Text
Read the response payload if you need to know which one was created before later component-specific edits.
Workflow Notes
- Create a Canvas first.
- Use panels to group related controls.
- Prefer
ui_create_batchfor menus, HUD groups, and repeated widgets. - Use anchors and layout groups before hand-placing every child.
- Text creation auto-detects TextMeshPro. Responses indicate whether TMP was used.
- For world-space gameplay UI, build the Canvas here first, then convert for XR only if needed.
ui_create_batchis mainly for bulk creation, not precise positioning. Follow it with layout or rect/anchor adjustments.ui_create_batch.itemsis a JSON string parameter in the current REST/API layer, not a raw array object.
Minimal Example
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": "开始", "width": 220, "height": 44},
{"type": "Button", "name": "OptionsBtn", "parent": "MenuPanel", "text": "设置", "width": 220, "height": 44},
{"type": "Button", "name": "QuitBtn", "parent": "MenuPanel", "text": "退出", "width": 220, "height": 44}
]))
unity_skills.call_skill("ui_set_anchor", name="MenuPanel", preset="MiddleCenter")
unity_skills.call_skill("ui_layout_children", name="MenuPanel", layoutType="Vertical", spacing=12)
Exact Signatures
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.
More from besty0728/unity-skills
unity-skills
Unity Editor automation via REST API — create scripts, analyze scenes, manage assets, control editor, and orchestrate workflows. Triggers: Unity, Unity Skills, in Unity, automate Unity, editor automation, create script, scene summary, build scene, 全自动模式, full auto, semi-auto, 半自动, Unity自动化, Unity编辑器, Unity技能, 操作Unity,在Unity中.
56unity-uitoolkit
UI Toolkit (UITK) for Unity — create/edit USS stylesheets and UXML layouts, configure UIDocument in scenes. Triggers: UI Toolkit, UITK, UXML, USS, UIDocument, PanelSettings, VisualElement, stylesheet, runtime UI, EditorWindow UI, 界面工具包, UI样式, 样式表, 可视化元素.
22unity-scriptableobject
ScriptableObject management. Use when users want to create, read, or modify ScriptableObject assets. Triggers: scriptableobject, SO, data asset, config, settings asset, 数据资产, 配置文件.
19unity-editor
Unity Editor control. Use when users want to enter play mode, select objects, undo/redo, or execute menu commands. Triggers: play, stop, pause, select, undo, redo, menu, editor, Unity编辑器, Unity播放, Unity撤销, Unity选择.
18unity-light
Unity lighting control. Use when users want to create or configure lights (Directional, Point, Spot, Area). Triggers: light, lighting, directional light, point light, spot light, shadows, intensity, 灯光, 光照, 阴影.
17unity-material
Unity material and shader properties. Use when users want to create materials, set colors, textures, emission, or shader properties. Triggers: material, shader, color, texture, emission, albedo, metallic, smoothness, 材质, 颜色, 纹理, 发光.
17