版本: Unity 6 (6000.0)
语言 : 英语
开始使用 UI 构建器
使用 UXML 实例作为模板

使用元素

UI 工具包中最基本的构建块是 `VisualElement`。这些元素按层次结构树进行排序,并具有父子关系。这被称为 视觉树一个由轻量级节点组成的对象图,它包含窗口或面板中的所有元素。它定义了使用 UI 工具包构建的每个 UI。
术语表 中查看

添加元素

您需要向层次结构中添加元素才能创建 UI。要在 UI 构建器中向层次结构中添加元素,请将其从 选项卡拖动到 层次结构 窗口。您也可以双击 中的元素,将其追加到 层次结构。默认情况下,元素没有命名,因此它们在 层次结构 中以其类型名称显示。

要命名元素,请双击 层次结构 中的项目,或更新元素 检查器一个 Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。 更多信息
术语表 中查看
窗口中的 名称 属性。

UI 工具包中不强制执行唯一命名,因此它们仅用于 UI 内部的识别。UI 构建器不会使用元素名称进行任何内部识别或功能。

要构建层次结构,您可以在 层次结构 中拖动一个或多个元素以重新排列它们或将它们移动到父级之间

ReorderInHierarchy
ReorderInHierarchy

您也可以将元素拖动到 画布 中,以及从 画布 中拖动元素,其中会出现一条 黄线,指示元素放置位置

ReorderInCanvas
ReorderInCanvas

操作元素

要复制、粘贴、复制或删除一个或多个选定元素,请右键单击元素并选择菜单中的选项。您也可以使用操作系统的标准快捷键。

当您在 层次结构 面板中复制元素时,它会复制元素及其子元素的 UXML 文本表示。这意味着您可以将其直接粘贴到文本编辑器中。您也可以复制 UXML 文本并将其粘贴到 UI 构建器中。

您对元素执行的所有操作也都会应用于其所有子元素。例如,删除元素会删除其所有子元素,复制元素会复制其下所有元素的整个子树。

只读元素

当您将元素从库选项卡拖动到层次结构选项卡时,您可能会注意到在层次结构选项卡中,其他子元素以灰显的方式出现。这些是只读元素。这种情况发生在某些内置 UI 控件以及某些 自定义元素 上,这些元素 在创建时创建其内部层次结构

当您向 `VisualElement` 添加子元素时,子元素将添加到此父元素的 `contentContainer` 中。例如,下面的 ScrollView一个 UI 控件,它在可视区域中显示大量控件,您可以使用滚动条查看。 更多信息
术语表 中查看
有一个 Foldout 子元素,它位于 `contentContainer` 内。它还有几个 Scroller 子元素,它们位于阴影树中。阴影树是位于此元素 `contentContainer` 外的子元素的层次结构。

The hierarchy of a ScrollView element
ScrollView 元素的层次结构

由于 UI 构建器只能编辑它可以在 UXML 文档中表示的内容,因此无法编辑内部层次结构。UXML 不是实时 UI 层次结构的直接副本,而是一组指令。

UXML 中的属性

元素具有可以设置为 UXML 的每个元素属性。您可以将其视为构造函数或初始化参数。这包括 `name` 属性。基本 `VisualElement` 类附带一些所有元素共有的标准属性(因为所有元素都继承自 `VisualElement`),如 `name`、`tooltip` 和 `tabindex`。更高级的元素和控件具有您可以设置的其他属性,例如,`Label` 添加了 `text` 属性。

注意:您可以使用 Enter 键为 `text` 属性添加换行符。

更改检查器中的属性

所有标准属性和自定义属性都显示在检查器窗口顶部的 属性 部分。

您可以在属性部分设置属性的值。如果字段以粗体显示,并且字段标签左侧有一条实线,则表示该属性已设置并且未使用默认值。例如,将 `tooltip` 从空设置到 `test`,然后设置回空与最初不设置它是不同的:第一种情况是 `未设置`,而第二种情况是 `设置为空`。`此属性已设置` 的含义是在此元素的 UXML 文本中有一个条目将此属性设置为 `a` 值

如果属性未出现在 UXML 文件中,则表示 `未设置`。

要取消设置属性,请右键单击字段标签并选择 取消设置

要取消设置所有属性,请右键单击字段标签并选择 取消设置所有属性

在画布中更改属性

您可以在 画布 中直接更改的唯一属性是文本元素(如 `Button` 或 `Label`)上的 `text` 属性。要在画布中更改 `text` 属性,请双击 画布 中的文本元素。

EditButtonTextInCanvas
EditButtonTextInCanvas

要提交更改,请按 Enter 键。如果 `text` 属性包含换行符,请使用 Shift + Enter 提交更改。

要取消更改,请按 Esc 键。

其他资源

开始使用 UI 构建器
使用 UXML 实例作为模板