Version: 2020.3
Unity 中 UI 系统的对比
访问 UI 工具包

UI 工具包

UI 工具包是用于开发用户界面 (UI) 的特性、功能、资源和工具的集合。您可以使用 UI 工具包为 Unity 编辑器、运行时调试工具以及游戏和应用程序的运行时 UI 开发自定义 UI 和扩展。

UI 工具包的设计灵感来自标准 Web 技术。如果您有开发网页或应用程序的经验,您的大部分知识可能是可以移植的,并且许多核心概念可能似曾相识。

注意:
尽管 Unity 建议在一些新的 UI 开发项目中使用 UI 工具包,但它仍然缺少 Unity UI (uGUI) 和 IMGUI 中的功能。这些较旧的系统更适合特定用例,并且需要支持已弃用的项目。有关何时适合选择旧系统而不是 UI 工具包的信息,请参阅Unity 中 UI 系统的对比

UI 工具包概述

本节简要介绍了 UI 工具包的主要特性、功能、资源和工具,包括:

  • UI 系统:包含创建用户界面所需的核心特性和功能。
  • UI 资源:受标准 Web 格式启发的资源类型。使用它们来实现 UI 的构建和风格。
  • 工具和资源:创建和调试界面,以及学习如何使用 UI 工具包。

UI 系统

UI 工具包的核心是一种保留模式的 UI 的系统,基于公认的 Web 技术。它支持样式表以及动态和上下文事件处理。

UI 系统包括以下功能:

  • 视觉树定义您使用 UI 工具包构建的每个用户界面。视觉树是一个对象图,由轻量级节点组成,包含窗口或面板中的所有元素。
  • 控件标准 UI 控件库,例如按钮、弹出窗口、列表视图和拾色器。您可以按原样使用、自定义这些控件,或创建自己的控件。
  • 数据绑定系统将属性链接到修改其值的控件。
  • 布局引擎基于 CSS Flexbox 模型的布局系统。它根据布局和样式属性定位元素。
  • 事件系统将用户交互传达给元素;例如,输入、触摸和指针交互、拖放操作和其他事件类型。该系统包括分发程序、处理程序、合成程序和事件类型库。
  • UI 渲染器:直接构建在 Unity 图形设备层之上的渲染系统。
  • ** UI 工具包运行时支持(通过UI 工具包软件包):**包含创建运行时 UI 所需的组件。UI 工具包软件包当前处于预览状态。

UI 资源

UI 工具包提供了以下资源类型,您可以使用它们以类似于开发 Web 应用程序的方式构建用户界面:

  • UXML 文档 Unity 可扩展标记语言 (UXML) 是一种受 HTML 和 XML 启发的标记语言,可用于定义用户界面和可重用 UI 模板的结构。虽然您可以直接在 C# 文件中构建接口,Unity 建议在大多数情况下使用 UXML 文档。
  • Unity 样式表 (USS) 样式表允许您将视觉样式和行为应用于用户界面。它们类似于 Web 上使用的层叠样式表 (CSS),并支持标准 CSS 属性的子集。虽然您可以直接在 C# 文件中应用样式,Unity 建议使用 USS 文件。

UI 工具和资源

UI 工具包还包括以下工具和资源来帮助您创建 UI:

  • UI 调试器: UI 调试器是一种诊断工具,类似于 Web 浏览器的调试视图。使用它来探索元素的层级结构并获取有关其底层 UXML 结构和 USS 样式的信息。您可以在编辑器中找到: Window > UI Toolkit > Debugger
  • UI Builder(包) UI Builder 可让您直观地创建和编辑 UI 工具包资源,例如 UXML 和 USS 文件。UI Builder 包当前处于预览状态。在 Unity 编辑器中,可通过 Package Manager 窗口进行安装:Window > Package Manager
  • UI 示例: UI 工具包含有一个 UI 控件的代码示例库,您可以在编辑器中查看:Window > UI Toolkit > Samples
Unity 中 UI 系统的对比
访问 UI 工具包