mcpField
U
ui

ui

github.com/unity-technologies设计与 UI57744 次安装5 天前更新
代码仓库

关于 ui

为 Unity UI 任务选择 UI Toolkit、uGUI 或 IMGUI 的路由技能,会依据用户请求和项目现有模式判断。适用于处理 UI 问答、编辑和生成的 Agent,并涵盖混合 UI 项目与 Figma 请求。

主要功能

  1. 01根据文件名和 UI 术语路由
  2. 02从项目文件检测 UI 系统
  3. 03支持理解、编辑和生成
  4. 04处理混合 UI 项目
  5. 05提供 Figma 导入替代方案

适用场景

  1. 01为 Unity UI 修改选择专用技能
  2. 02识别现有项目使用的 UI 框架
  3. 03处理基于 Figma 的 UI 请求
  4. 04无需路由即可回答 UI 概念问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/unity-technologies/unity-agent-plugin --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