简介
UI Toolkit 是 Unity 提供的一套用于构建用户界面的现代化框架,最初主要应用于 Unity 编辑器扩展,后续也逐步支持运行时界面开发。它借鉴了 Web 开发中的 HTML、CSS 和事件系统,通过 UXML 描述界面结构、USS 定义样式,并使用 C# 编写交互逻辑。
主要组成
- VisualElement:UI Toolkit 中所有界面元素的基础类。
- UXML:一种用于描述 UI 层级结构的 XML 格式,便于将界面布局与业务逻辑分离。
- USS:类似 CSS 的样式表,用于设置元素的颜色、尺寸、间距和布局等属性。
- UI Builder:Unity 提供的可视化编辑工具,可以通过拖拽方式设计界面并生成 UXML 与 USS 文件。
- 事件系统:支持点击、输入、拖拽、键盘等常见交互事件。
UI Toolkit 的优势
- 开发效率高:可以使用 UI Builder 快速搭建界面,减少手动创建和调整 UI 的工作量。
- 结构清晰:通过 UXML、USS 和 C# 分离布局、样式与逻辑,方便维护和复用。
- 样式复用方便:USS 支持选择器和样式继承,可以统一管理多个控件的外观。
- 适合编辑器扩展:相比传统的 IMGUI,UI Toolkit 更适合构建复杂、可维护的 Unity 编辑器窗口。
适用场景
UI Toolkit 常用于自定义 Inspector、EditorWindow、编辑器工具面板以及运行时菜单、设置界面等场景。对于需要复杂布局、统一样式和长期维护的项目,UI Toolkit 是一个值得使用的选择。
实际项目中的应用与开发
以博主的UI ToolKit作编辑器扩展开发历程来说,UI ToolKit能完成
- 小工具开发:如格式批处理转换窗格。
- 关卡编辑器。
- 复选菜单栏。
- 编辑器窗口。
等等内容,接下来博主将展示一些UIToolKit使用UIToolKit的实际开发内容。
ALOL 数独小游戏的关卡编辑器
ALOL是一款数独类型的解密游戏。对于编关人员来说,能否自定义格子元素的内容,自动检测关卡是否存在问题,或一键生成关卡,能极大的方便编关人员的关卡编写。
ALOL的关卡编辑器采用UIToolKit打造,配合ScriptableObject完成关卡的存储与编写。
UIToolKit的组件编写类似网页开发,以下是关卡编辑器面板和元素格子的UXML可视面板。