Agent SkillsBesty0728/Unity-Skills › unity-uitoolkit

unity-uitoolkit

GitHub

用于构建Unity UI Toolkit界面,支持创建编辑USS样式与UXML布局、配置UIDocument。需Unity 2022.3+,不混用UGUI。自动处理资源导入,部分写入操作需授权,删除操作受限。

SkillsForUnity/unity-skills~/skills/uitoolkit/SKILL.md Besty0728/Unity-Skills

Trigger Scenarios

用户要求使用UI Toolkit或UITK 需要编写或修改USS/UXML文件 配置UIDocument组件 创建或编辑运行时/编辑器UI

Install

npx skills add Besty0728/Unity-Skills --skill unity-uitoolkit -g -y
More Options

Non-standard path

npx skills add https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~/skills/uitoolkit -g -y

Use without installing

npx skills use Besty0728/Unity-Skills@unity-uitoolkit

指定 Agent (Claude Code)

npx skills add Besty0728/Unity-Skills --skill unity-uitoolkit -a claude-code -g -y

安装 repo 全部 skill

npx skills add Besty0728/Unity-Skills --all -g -y

预览 repo 内 skill

npx skills add Besty0728/Unity-Skills --list

SKILL.md

Frontmatter
{
    "name": "unity-uitoolkit",
    "description": "Build Unity UI Toolkit (UITK) UIs — create\/edit USS stylesheets and UXML layouts, and configure UIDocument components. Use when authoring runtime or editor UI with UI Toolkit, writing USS\/UXML, or wiring a UIDocument, even if the user just says \"UITK\" or \"UXML\". 构建 Unity UI Toolkit(UITK)界面(创建\/编辑 USS 样式表与 UXML 布局、配置 UIDocument 组件);当用户要用 UI Toolkit 编写运行时或编辑器 UI、编写 USS\/UXML、或接入 UIDocument 时使用。"
}

Unity UI Toolkit Skills

Use this module for Unity UI Toolkit only: UXML for structure, USS for styling, UIDocument for scene attachment, and PanelSettings for runtime rendering.

Requires Unity 2022.3+. Do not mix this module with ui_* UGUI/Canvas skills. Localization: Match visible UI text to the user's language. Chinese conversation -> Chinese labels/placeholders/button text. USS class names and CSS variables stay English.

Operating Mode

  • Approval:查询类 skill(uitk_read_file / uitk_find_files / uitk_get_panel_settings / uitk_list_documents / uitk_inspect_uxml / uitk_list_uss_variables / uitk_inspect_document,源码标 SkillMode.SemiAuto)直接执行;其余文件/场景写入类(uitk_create_* / uitk_write_file / uitk_add_* / uitk_modify_element 等,标 SkillMode.FullAuto)需用户 grant,grant 后服务端一步执行返结果。
  • Auto / Bypass:未被禁列表拦截的 skill 直接执行。
  • 本模块含 Delete 类 skilluitk_delete_fileuitk_remove_elementuitk_remove_uss_rule 标记为 SkillOperation.Delete,被 IsForbiddenInSemi 静态拦截 —— 仅 Bypass 模式或加入 Allowlist 才能调用。
  • Asset 重导行为:所有写文件/删文件 skill 通过 AssetDatabase.ImportAsset(path) 对单个 USS/UXML 资产单独触发导入,不会AssetDatabase.Refresh() 触发全项目扫描;批量创建依次单独 Import。但 USS/UXML 是 ScriptedImporter 类型,Import 仍会重建依赖此资产的 PanelSettings/UIDocument 引用,触发 IMGUI 检查器刷新与场景视图重绘。

DO NOT (common hallucinations):

  • uitoolkit_create_button / uitoolkit_create_label do not exist -> use uitk_add_element
  • uitoolkit_set_style does not exist -> use uitk_add_uss_rule, uitk_remove_uss_rule, or uitk_modify_element
  • uitoolkit_create_canvas does not exist -> UI Toolkit uses UIDocument, not Canvas
  • uitk_* and ui_* are different systems. Do not mix UI Toolkit structure/styling assumptions into UGUI workflows
  • USS is not full CSS. display:grid, box-shadow, calc(), @media, ::before, z-index, and gradients are unsupported

Routing:

  • For UGUI Canvas/Button/Text/Image -> use the ui module
  • For XR world-space Canvas conversion -> use xr_setup_ui_canvas
  • For generated starter layouts -> use uitk_create_from_template
  • For attaching an existing UXML to a scene object -> use uitk_create_document or uitk_set_document

Skills

File Skills

Skill Use Key parameters
uitk_create_uss Create USS file savePath, content?
uitk_create_uxml Create UXML file savePath, content?, ussPath?
uitk_read_file Read USS/UXML content filePath
uitk_write_file Overwrite file content filePath, content
uitk_delete_file Delete USS/UXML file filePath
uitk_find_files Search files by name/path type?, folder?, filter?, limit?
uitk_create_batch Create 2+ files in one call items

Scene Skills

Skill Use Key parameters
uitk_create_document Create UIDocument GameObject name, uxmlPath?, panelSettingsPath?, sortOrder?, parentName?/parentInstanceId?/parentPath?
uitk_set_document Change UIDocument asset bindings name/instanceId, uxmlPath?, panelSettingsPath?
uitk_create_panel_settings Create PanelSettings asset savePath, scaleMode, referenceResolutionX/Y, Unity 6 world-space options
uitk_get_panel_settings Read PanelSettings values assetPath
uitk_set_panel_settings Update PanelSettings selectively assetPath, changed fields only
uitk_list_documents List scene UIDocuments none
uitk_inspect_document Inspect live VisualElement tree name/instanceId/path, depth

UXML Structure Skills

Skill Use Key parameters
uitk_add_element Add a child element filePath, elementType, parentName?, elementName?, text?, classes?
uitk_remove_element Remove by name filePath, elementName
uitk_modify_element Change attributes/classes/text filePath, elementName, text?, classes?, style?, newName?, bindingPath?, custom attribute fields
uitk_clone_element Duplicate an element subtree filePath, elementName, newName?
uitk_inspect_uxml Parse UXML hierarchy filePath, depth?

USS Style Skills

Skill Use Key parameters
uitk_add_uss_rule Add or replace selector rule filePath, selector, properties
uitk_remove_uss_rule Remove selector rule filePath, selector
uitk_list_uss_variables Inspect design tokens / var() usage filePath

Template and CodeGen Skills

Skill Use Key parameters
uitk_create_from_template Generate paired UXML+USS template, savePath, name?
uitk_create_editor_window Generate EditorWindow script savePath, className, uxmlPath?, ussPath?, menuPath?
uitk_create_runtime_ui Generate runtime MonoBehaviour query scaffold savePath, className, elementQueries?

Supported starter templates include menu, hud, dialog, settings, inventory, list, tab-view, toolbar, card, and notification.

Core Domain Knowledge

USS vs CSS

Pattern Supported in USS What to do
Flex layout Yes Use flex-direction, flex-wrap, align-items, justify-content
border-radius, opacity, overflow:hidden Yes Safe to use
Transforms / transitions Yes translate, scale, rotate work
CSS variables Yes Prefer :root tokens
display:grid / display:block / display:inline No Everything is flex; emulate grids with wrapping rows
box-shadow No Fake with nested background element
linear-gradient() / radial-gradient() No Use image textures
calc() / @media No Use explicit values + PanelSettings.scaleMode
::before / ::after No Add a real child VisualElement
z-index No Later siblings render on top

Common USS workarounds

Need USS-safe workaround
Shadow Extra child VisualElement behind content
Responsive scaling PanelSettings.scaleMode = ScaleWithScreenSize
Grid cards flex-direction: row + flex-wrap: wrap + child widths
Circular avatar Equal width/height + radius = half size + overflow:hidden
Pseudo decoration Add an extra absolutely positioned child

High-Frequency Parameters

Skill Parameters you usually need first
uitk_create_panel_settings savePath, scaleMode, referenceResolutionX, referenceResolutionY
uitk_create_document name, uxmlPath, panelSettingsPath, sortOrder?
uitk_add_element filePath, elementType, parentName?, elementName?, text?, classes?
uitk_modify_element filePath, elementName, changed attributes only
uitk_add_uss_rule filePath, selector, properties

PanelSettings choices

  • ScaleWithScreenSize: default for runtime HUD/menu UI
  • ConstantPixelSize: use when strict pixel mapping matters
  • ConstantPhysicalSize: rare; only for physically sized UI requirements

Unity 6 world-space flows also need the scene-side document camera setup after configuring PanelSettings.

File and Structure Rules

  • Prefer one UXML root that references shared token/style files through <Style src="..."/>.
  • Keep USS next to UXML when possible so relative style references stay short.
  • Use uitk_inspect_uxml before complex structural edits if you did not create the file yourself.
  • uitk_create_uxml can auto-reference a stylesheet when ussPath is provided.

Workflow Notes

  1. Create USS/UXML first, then attach them through uitk_create_document.
  2. Runtime rendering needs a valid PanelSettings asset.
  3. When USS and UXML are in the same folder, prefer <Style src="MyStyle.uss" />; use a full asset path only for cross-folder references.
  4. Start with design tokens, then component rules, then layout containers.
  5. For incremental edits, prefer uitk_read_file -> edit -> uitk_write_file.
  6. When creating 2+ files, use uitk_create_batch.
  7. Unity 6 world-space rendering uses PanelSettings world-space options plus the scene-side UIDocument camera setup.
  8. Use uitk_create_from_template when the user needs a starter screen fast; use uitk_add_element / uitk_add_uss_rule for targeted edits on existing files.

Minimal Example

import unity_skills

unity_skills.call_skill("uitk_create_panel_settings",
    savePath="Assets/UI/GamePanel.asset",
    scaleMode="ScaleWithScreenSize",
    referenceResolutionX=1920,
    referenceResolutionY=1080
)

unity_skills.call_skill("uitk_create_uss",
    savePath="Assets/UI/HUD.uss",
    content=":root { --accent: #E8632B; } .title { color: var(--accent); }"
)

unity_skills.call_skill("uitk_create_uxml",
    savePath="Assets/UI/HUD.uxml",
    content="<?xml version=\"1.0\" encoding=\"utf-8\"?><engine:UXML xmlns:engine=\"UnityEngine.UIElements\"><Style src=\"HUD.uss\" /><engine:Label class=\"title\" text=\"Start\" /></engine:UXML>"
)

unity_skills.call_skill("uitk_create_document",
    name="HUD",
    uxmlPath="Assets/UI/HUD.uxml",
    panelSettingsPath="Assets/UI/GamePanel.asset"
)

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 USS_REFERENCE.md before generating non-trivial USS systems, layout patterns, component styles, or complete examples.

Version History

  • ec9f870 Current 2026-07-05 14:41

Same Skill Collection

SkillsForUnity/unity-skills~/skills/adr/SKILL.md
SkillsForUnity/unity-skills~/skills/animator/SKILL.md
SkillsForUnity/unity-skills~/skills/architecture/SKILL.md
SkillsForUnity/unity-skills~/skills/asmdef/SKILL.md
SkillsForUnity/unity-skills~/skills/asset/SKILL.md
SkillsForUnity/unity-skills~/skills/async/SKILL.md
SkillsForUnity/unity-skills~/skills/batch/SKILL.md
SkillsForUnity/unity-skills~/skills/blueprints/SKILL.md
SkillsForUnity/unity-skills~/skills/bookmark/SKILL.md
SkillsForUnity/unity-skills~/skills/camera/SKILL.md
SkillsForUnity/unity-skills~/skills/cinemachine/SKILL.md
SkillsForUnity/unity-skills~/skills/cleaner/SKILL.md
SkillsForUnity/unity-skills~/skills/component/SKILL.md
SkillsForUnity/unity-skills~/skills/console/SKILL.md
SkillsForUnity/unity-skills~/skills/debug/SKILL.md
SkillsForUnity/unity-skills~/skills/decal/SKILL.md
SkillsForUnity/unity-skills~/skills/dotween/SKILL.md
SkillsForUnity/unity-skills~/skills/editor/SKILL.md
SkillsForUnity/unity-skills~/skills/event/SKILL.md
SkillsForUnity/unity-skills~/skills/gameobject/SKILL.md
SkillsForUnity/unity-skills~/skills/graphics/SKILL.md
SkillsForUnity/unity-skills~/skills/history/SKILL.md
SkillsForUnity/unity-skills~/skills/importer/SKILL.md
SkillsForUnity/unity-skills~/skills/inspector/SKILL.md
SkillsForUnity/unity-skills~/skills/light/SKILL.md
SkillsForUnity/unity-skills~/skills/material/SKILL.md
SkillsForUnity/unity-skills~/skills/navmesh/SKILL.md
SkillsForUnity/unity-skills~/skills/netcode-design/SKILL.md
SkillsForUnity/unity-skills~/skills/netcode/SKILL.md
SkillsForUnity/unity-skills~/skills/optimization/SKILL.md
SkillsForUnity/unity-skills~/skills/package/SKILL.md
SkillsForUnity/unity-skills~/skills/patterns/SKILL.md
SkillsForUnity/unity-skills~/skills/perception/SKILL.md
SkillsForUnity/unity-skills~/skills/performance/SKILL.md
SkillsForUnity/unity-skills~/skills/physics/SKILL.md
SkillsForUnity/unity-skills~/skills/postprocess/SKILL.md
SkillsForUnity/unity-skills~/skills/prefab/SKILL.md
SkillsForUnity/unity-skills~/skills/probuilder/SKILL.md
SkillsForUnity/unity-skills~/skills/profiler/SKILL.md
SkillsForUnity/unity-skills~/skills/project-scout/SKILL.md
SkillsForUnity/unity-skills~/skills/project/SKILL.md
SkillsForUnity/unity-skills~/skills/sample/SKILL.md
SkillsForUnity/unity-skills~/skills/scene-contracts/SKILL.md
SkillsForUnity/unity-skills~/skills/scene/SKILL.md
SkillsForUnity/unity-skills~/skills/script-roles/SKILL.md
SkillsForUnity/unity-skills~/skills/script/SKILL.md
SkillsForUnity/unity-skills~/skills/scriptableobject/SKILL.md
SkillsForUnity/unity-skills~/skills/scriptdesign/SKILL.md
SkillsForUnity/unity-skills~/skills/shader/SKILL.md
SkillsForUnity/unity-skills~/skills/shadergraph/SKILL.md
SkillsForUnity/unity-skills~/skills/SKILL.md
SkillsForUnity/unity-skills~/skills/smart/SKILL.md
SkillsForUnity/unity-skills~/skills/terrain/SKILL.md
SkillsForUnity/unity-skills~/skills/test/SKILL.md
SkillsForUnity/unity-skills~/skills/testability/SKILL.md
SkillsForUnity/unity-skills~/skills/timeline/SKILL.md
SkillsForUnity/unity-skills~/skills/ui/SKILL.md
SkillsForUnity/unity-skills~/skills/urp/SKILL.md
SkillsForUnity/unity-skills~/skills/validation/SKILL.md
SkillsForUnity/unity-skills~/skills/volume/SKILL.md
SkillsForUnity/unity-skills~/skills/workflow/SKILL.md
SkillsForUnity/unity-skills~/skills/xr/SKILL.md
SkillsForUnity/unity-skills~/skills/yooasset-design/SKILL.md
SkillsForUnity/unity-skills~/skills/yooasset/SKILL.md
SkillsForUnity/unity-skills~/SKILL.md
SkillsForUnity/unity-skills~/skills/addressables-design/SKILL.md
SkillsForUnity/unity-skills~/skills/dotween-design/SKILL.md
SkillsForUnity/unity-skills~/skills/shadergraph-design/SKILL.md
SkillsForUnity/unity-skills~/skills/unitask-design/SKILL.md
SkillsForUnity/unity-skills~/skills/yaml-editing/SKILL.md

Metadata

Files
0
Version
ec9f870
Hash
27c708d4
Indexed
2026-07-05 14:41

trang chủ - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-07-08 19:14
浙ICP备14020137号-1 $bản đồ khách truy cập$