mcpField
U
ui

ui

github.com/unity-technologies设计与 UI1.2k5.2k 次安装1 天前更新
代码仓库

关于 ui

面向 Unity 项目的 UI 路由技能,根据文件、关键词和项目现有模式,将理解、编辑或生成请求交给 UI Toolkit、uGUI 或 IMGUI 专项技能。对于概念问题则直接回答,并说明 Figma 导入不可用。

主要功能

  1. 01按文件和关键词识别 UI 系统
  2. 02检查项目文件与组件模式
  3. 03路由到 UI Toolkit、uGUI 或 IMGUI
  4. 04区分直接回答与技能路由
  5. 05说明 Figma 自动导入不可用

适用场景

  1. 01将 .uxml 编辑请求交给 UI Toolkit
  2. 02把 Canvas 界面修改交给 uGUI
  3. 03为自定义检查器选择 UI 技术
  4. 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 的 .prefabui-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(编辑器)
场景/预制件中的 CanvasuGUI
大量使用 RectTransformuGUI
含有 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
文件组织与现有项目结构保持一致
工作流
  1. 确定 UI 系统 — 使用上述路由逻辑
    • 对于 Figma 请求,告知用户此处无法自动导入,然后根据他们的描述或截图继续检测框架
  2. 启用专用技能 — 路由到 ui-uitk、ui-ugui 或 ui-imgui
  3. 技能处理请求 — 根据需要进行理解、编辑或生成

处理混合项目

许多 Unity 项目会同时使用多个 UI 系统(例如,使用 UI Toolkit 实现运行时游戏 UI,同时使用其他系统构建编辑器工具)。检测到多个系统时:

  • 对于运行时 UI 请求(菜单、HUD、游戏界面)→ 路由到当前使用的运行时系统(UITK 或 uGUI)
  • 对于编辑器工具请求(自定义检查器、编辑器窗口):
    • 创建新的编辑器 UI 时,优先使用 UI Toolkit(CreateGUI)——这是现代方案
    • 仅当项目现有编辑器工具完全使用 IMGUI,或用户明确要求使用 IMGUI 时,才使用 IMGUI
    • 检查是否有现有编辑器 .uxml 文件,以确认是否使用 UITK
  • 如果要在混合项目中创建新的运行时 UI → 遵循类似现有 UI 所使用的模式;如果没有类似的现有 UI,且用户没有偏好,则使用 uGUI

评论

支持 Markdown