关于 unity-ui-procedural
面向使用 C# 程序化构建界面的 Unity 开发者的 UI Toolkit 技能。它提供链式元素构建、可复用指针操作器和基于 USS 类的样式,无需 UXML 文件。
主要功能
- 01链式构建 UI 树
- 02可复用的指针操作器
- 03无需 UXML 的程序化 UI
- 04基于 USS 类的样式
适用场景
- 01构建动态物品栏界面
- 02为元素添加拖动交互
- 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.txtProceduralViewExample.cs.txtUIToolkitExtensions.cs.txt详细介绍
Unity UI Toolkit 程序化 UI
完全通过代码构建响应迅速、高度动态的用户界面。这项技能支持“逻辑优先”的 UI 工作流,非常适合库存、工具提示和动态 HUD 等复杂系统。
核心功能
- 流畅的层级构建:使用
.CreateChild<T>()和.WithClass()等链式扩展方法构建 UI 树,让代码读起来就像文档一样。 - 通用指针操作器:使用
ManipulatorAPI 将交互逻辑(拖动、调整大小、选择)与视觉呈现分离。 - 无构建器工作流:无需复杂的 UXML 文件,让 UI 更适合版本控制,也更容易通过程序化方式扩展。
- 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