SuperAPI AI 工具集

ui-uitk

设计与创作

查看项目

更新于 10-16 02:44

技能介绍

ui-uitk 是 Unity 官方 unity-agent-plugin 仓库中的一项技能,聚焦于 Unity UI Toolkit 的 UXML 与 USS 相关工作,并支持 flex 布局。其用途是帮助理解现有 UI Toolkit 代码、进行针对性编辑、生成新的 UXML/USS 文件、Manipulator,以及处理 UI 运行时数据绑定。

主要能力

该技能可读取并解释 UI 结构,使用类似树形的格式展示元素类型、name 与 class 层级。常见编辑请求包括:修改按钮颜色(编辑对应 USS 选择器)、在指定位置添加标签(在 UXML 中添加元素)、调整尺寸(编辑 USS 的宽高)、隐藏元素(添加 display: none 或从 UXML 移除)、重命名元素(更新 UXML 的 name 属性)。编辑时要求只改被请求的内容,保留格式与结构,不擅自“改进”无关代码,不添加未要求的注释;对于局部改动优先修改具体元素或选择器,而非重写整个文件,但若改动涉及文件大部分内容,重写可能更清晰。

生成能力

生成时按请求区分输出:仅 USS 时只生成 .uss 文件;仅 UXML 时只生成 .uxml 文件;UI 屏幕/菜单/面板生成 .uss 与 .uxml;明确要求“带代码”“带逻辑”“功能性”时才额外生成 .cs。技能特别说明“proper buttons”“currency display”“working UI”“inventory screen”等表述并不隐含需要 C#。生成流程包括:分析所需文件、搜索现有 USS/UXML/资源、遵循项目模式与命名约定、复用共享样式表、先写 USS 再写 UXML、完整写出文件、必要时进行场景设置(分配 PanelSettings)、按需添加运行时数据绑定脚本。

使用方式与验证

由于 UXML 与 USS 无法在编辑器外部验证,Unity 会在导入时解析并在 Console 中报告问题。工作流要求:将完整文件写入项目目标路径(不得写入部分或草稿内容,半成品 UXML 会立即导致解析错误);请用户聚焦 Unity 编辑器以触发重新导入;请用户报告 Console 中的内容(UXML 解析错误会指明文件与行号,USS 问题表现为未知属性或选择器的警告);根据反馈修复并重复。为减少往返,建议一次性完成所有文件后再请用户检查,并在写入前重读 uss-guide.md 与 common-issues.md。

规则与限制

USS 是 CSS 的子集,技能列出不存在的属性并给出替代:border 简写应拆分为 border-width、border-color;gap 用子元素 margin;z-index 用 DOM 顺序或父级嵌套;pointer-events 用 UXML 的 picking-mode 属性;filter 不支持;outline 用 border-* 属性;box-shadow 用嵌套元素或背景图;:first-child、:last-child、:nth-child 用显式类;[attribute] 选择器用显式类;transition-property 仅可省略或使用 none/initial/inherit;linear-gradient()、radial-gradient() 需用 Painter2D 自定义 VisualElement。UXML 中禁止内联 style="...",所有样式放在 USS;禁止使用外部 URL,仅允许 url("project://database/Assets/...")。UXML 文件必须声明命名空间、链接样式表、只有一个顶层容器。命名约定:name 属性用 camelCase,class 与 USS 用 kebab-case,文件路径按功能文件夹组织。

适用场景

适用于 Unity 项目中涉及 UI Toolkit、UIElements、UIDocument 的界面理解、编辑与生成,包括按钮、标签、面板、菜单、库存界面等布局,以及需要 Manipulator 处理拖放或事件交互、需要运行时数据绑定的场景。对于“库存系统”“装备系统”“制作系统”等请求,技能要求先询问是否需要拖放,若需要则参考 pointermanipulator-guide.md,否则仅创建静态布局。

限制

该技能依赖 Unity 编辑器进行验证,无法在外部校验 UXML/USS;不引用 UnityDefaultRuntimeTheme.tss 或内置主题图标;图标优先复用项目现有图标,其次生成 SVG,最后才考虑图像生成器;C# 仅在明确要求时生成,且应通过 USS 类设置样式而非 element.style.*;UITK 使用 TextCore 文本资源(FontAsset、TextStyleSheet、TextSettings),而非 TextMeshPro 对应资源。关于收费、价格、平台等具体信息,资料中暂未提供。