关于 ui
面向 Unity 项目的 UI 路由技能,根据文件、关键词和项目现有模式,将理解、编辑或生成请求交给 UI Toolkit、uGUI 或 IMGUI 专项技能。对于概念问题则直接回答,并说明 Figma 导入不可用。
主要功能
- 01按文件和关键词识别 UI 系统
- 02检查项目文件与组件模式
- 03路由到 UI Toolkit、uGUI 或 IMGUI
- 04区分直接回答与技能路由
- 05说明 Figma 自动导入不可用
适用场景
- 01将 .uxml 编辑请求交给 UI Toolkit
- 02把 Canvas 界面修改交给 uGUI
- 03为自定义检查器选择 UI 技术
- 04回答 UI 系统比较与选型问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ unity-technologies/ skills --skill ui安装后在 Claude Code 中输入/ui确认已加载。
详细介绍
确定项目适用的 UI 系统,并路由到正确的专用技能。
何时路由,何时直接回答
在以下情况下路由到专用技能:
- 用户想要了解、编辑或生成特定 UI 元素
- 用户提及特定文件或 UI 对象
- 用户要求修改或创建 UI
在以下情况下直接回答(不进行路由):
- 用户提出比较或教育类问题(“UI Toolkit 和 uGUI 有什么区别?”)
- 用户询问 UI 系统的功能或寻求建议(“移动端应该使用 UITK 还是 uGUI?”)
- 用户需要了解 Unity UI 架构的概念
路由逻辑
步骤 1:检查是否明确提及文件或关键词:
| 用户提及 | 路由到 |
|---|---|
.uxml 或 .uss 文件(包括 /Editor/ 中的文件) | ui-uitk |
| “UI Toolkit”、“UITK”、“UIElements”、“CreateGUI” | ui-uitk |
Canvas 预制件/对象、包含 UI 的 .prefab | ui-ugui |
| “uGUI”、“Canvas”、“RectTransform”、“legacy UI” | ui-ugui |
| “IMGUI”、“OnGUI”、“OnInspectorGUI”、“immediate mode” | ui-imgui |
Figma URL(figma.com/design/...)、“Figma”、“import from Figma” | 不可用——请参阅下文 |
对于与编辑器相关的请求(EditorWindow、自定义检查器、PropertyDrawer):
- 如果未明确提及 UI 系统 → 转到步骤 2,检测项目的编辑器 UI 系统
- 如果未检测到现有模式,新建编辑器 UI 时默认使用
ui-uitk - 仅当项目专门使用 IMGUI 或用户明确要求时,才使用
ui-imgui
如果发现明确提及的文件或关键词,立即启用对应技能。
步骤 2:如果情况不明确,则从项目中检测:
搜索项目,确定正在使用哪个 UI 系统:
| 查找内容 | 表示 |
|---|---|
.uxml 或 .uss 文件(包括 /Editor/ 中的文件) | UI Toolkit(运行时或编辑器) |
场景中的 UIDocument 组件 | UI Toolkit(运行时) |
含有 CreateGUI() 方法的编辑器脚本 | UI Toolkit(编辑器) |
场景/预制件中的 Canvas | uGUI |
大量使用 RectTransform | uGUI |
含有 OnGUI() 或 OnInspectorGUI() 的编辑器脚本 | IMGUI(旧版编辑器) |
步骤 3:如果仍不明确,则询问或采用默认方案:
- 对于现有项目:检测并沿用已在使用的框架(步骤 2)
- 对于尚无 UI 的新项目:询问用户偏好哪种框架(UI Toolkit 或 uGUI),并简要说明 UI Toolkit 现代且类似 CSS,而 uGUI 基于 Canvas 且成熟
- 对于用户没有偏好的新运行时/游戏 UI:默认使用 uGUI(
ui-ugui) - 用户提到移动端/性能限制或较旧的 Unity 版本(低于 6.0)时:优先考虑 uGUI(
ui-ugui)
请求类型
专用技能可处理以下三类请求:
| 类型 | 示例 |
|---|---|
| 理解 | “这个按钮有什么作用?”、“这是如何布局的?”、“解释一下这个 UI” |
| 编辑 | “更改这个颜色”、“在这里添加一个标签”、“修复这个布局” |
| 生成 | “创建一个菜单”、“制作一个库存界面”、“构建一个设置面板” |
根据 UI 系统,将所有类型的请求路由到相应的专用技能。
可用的子技能
UI Toolkit — ui-uitk
- 适用于使用 UI Toolkit 的 Unity 6.0+ 项目(运行时游戏 UI 和编辑器工具)
- 理解、编辑和生成
.uxml和.uss文件 - 采用现代、类似 CSS 的样式方案
- 新建编辑器窗口(CreateGUI)和现有 UI Toolkit 项目的首选方案
uGUI — ui-ugui
- 适用于使用 Unity 基于 Canvas 的 UI 系统的项目
- 理解、编辑和生成 Canvas 层级结构
- 使用 Layout Groups 实现响应式设计
- 用户没有框架偏好时,新建运行时/游戏 UI 的默认方案
IMGUI — ui-imgui
- 适用于使用 OnGUI/即时模式的旧版编辑器工具
- 仅当项目已有 IMGUI 编辑器代码,或用户明确要求使用 IMGUI 时才使用
- 理解、编辑并生成使用 OnGUI 构建的 EditorWindow、检查器和 PropertyDrawers
- 不适用于运行时游戏 UI——对于新的编辑器工具,除非项目已经完全使用 IMGUI,否则请使用 UI Toolkit
Figma 设计导入 — 此处不可用
导入 Figma 设计需要 Unity 的 Figma 集成服务,该服务仅存在于 Unity AI Assistant 内。客户端没有等效功能,因此不要承诺能够导入。
如果用户提供 Figma URL,请告知他们此处无法自动导入,并提供替代方案:请他们描述屏幕内容或提供截图,然后使用上述相应的框架技能来构建。
通用指南(适用于所有 UI 系统)
范围约束
只做用户要求的事:
- 提问 → 直接回答,不做更改
- 定向编辑 → 仅修改指定内容
- 生成 → 仅创建指定文件
- 除非用户明确要求,否则不要主动添加脚本
以下要求不意味着要编写脚本:
- “合适的按钮” → 样式良好的按钮
- “可用的 UI” → 能正常渲染的有效 UI
- “菜单界面” → 仅提供视觉布局
约定
优先遵循项目现有模式。 应用默认约定前,先搜索现有文件。
| 类型 | 约定 |
|---|---|
| 元素名称 | 遵循项目模式,或使用 camelCase |
| 文件组织 | 与现有项目结构保持一致 |
工作流
- 确定 UI 系统 — 使用上述路由逻辑
- 对于 Figma 请求,告知用户此处无法自动导入,然后根据他们的描述或截图继续检测框架
- 启用专用技能 — 路由到
ui-uitk、ui-ugui或ui-imgui - 技能处理请求 — 根据需要进行理解、编辑或生成
处理混合项目
许多 Unity 项目会同时使用多个 UI 系统(例如,使用 UI Toolkit 实现运行时游戏 UI,同时使用其他系统构建编辑器工具)。检测到多个系统时:
- 对于运行时 UI 请求(菜单、HUD、游戏界面)→ 路由到当前使用的运行时系统(UITK 或 uGUI)
- 对于编辑器工具请求(自定义检查器、编辑器窗口):
- 创建新的编辑器 UI 时,优先使用 UI Toolkit(CreateGUI)——这是现代方案
- 仅当项目现有编辑器工具完全使用 IMGUI,或用户明确要求使用 IMGUI 时,才使用 IMGUI
- 检查是否有现有编辑器
.uxml文件,以确认是否使用 UITK
- 如果要在混合项目中创建新的运行时 UI → 遵循类似现有 UI 所使用的模式;如果没有类似的现有 UI,且用户没有偏好,则使用 uGUI
评论
支持 Markdown