mcpField
U
unity-ui-procedural

unity-ui-procedural

github.com/muharremtozan开发1755 次安装22 周前更新
代码仓库

关于 unity-ui-procedural

面向使用 C# 程序化构建界面的 Unity 开发者的 UI Toolkit 技能。它提供链式元素构建、可复用指针操作器和基于 USS 类的样式,无需 UXML 文件。

主要功能

  1. 01链式构建 UI 树
  2. 02可复用的指针操作器
  3. 03无需 UXML 的程序化 UI
  4. 04基于 USS 类的样式

适用场景

  1. 01构建动态物品栏界面
  2. 02为元素添加拖动交互
  3. 03程序化创建菜单和 HUD

安装

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

$npx skills add https://github.com/muharremtozan/unity-agent-skills --skill unity-ui-procedural

安装后在 Claude Code 中输入/unity-ui-procedural确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/code/
DragManipulator.cs.txt
ProceduralViewExample.cs.txt
UIToolkitExtensions.cs.txt

详细介绍

Unity UI Toolkit 程序化 UI

完全通过代码构建响应迅速、高度动态的用户界面。这项技能支持“逻辑优先”的 UI 工作流,非常适合库存、工具提示和动态 HUD 等复杂系统。

核心功能

  1. 流畅的层级构建:使用 .CreateChild<T>() 和 .WithClass() 等链式扩展方法构建 UI 树,让代码读起来就像文档一样。
  2. 通用指针操作器:使用 Manipulator API 将交互逻辑(拖动、调整大小、选择)与视觉呈现分离。
  3. 无构建器工作流:无需复杂的 UXML 文件,让 UI 更适合版本控制,也更容易通过程序化方式扩展。
  4. BEM 集成:扩展方法优先应用 CSS 类,以保持样式系统整洁。

核心文件(最多 3 个)

  • UIToolkitExtensions.cs.txt:用于链式创建元素和设置样式的通用方法。
  • DragManipulator.cs.txt:适用于任何 VisualElement 的跨平台指针拖动系统。
  • ProceduralViewExample.cs.txt:展示流畅语法强大之处的“快捷栏/库存”演示。

用法

1. 构建面板(流畅方式)
var root = GetComponent<UIDocument>().rootVisualElement;
root.CreateChild<VisualElement>( "main-menu" )
    .WithClass( "menu--active" )
    .CreateChild<Button>( "menu__btn--start" )
    .text = "Start Game";
2. 添加交互
var window = root.Q( "inventory-window" );
window.AddManipulator( new DragManipulator() );

核心原则

即使通过程序化方式构建,也始终使用 USS 类设置样式。除非用于动态计算(例如生命值条),否则避免在 C# 中直接设置 .style.width 或颜色。

评论

支持 Markdown