UI 工具包中最基本的构建块是 `VisualElement`。这些元素按层次结构树进行排序,并具有父子关系。这被称为 视觉树一个由轻量级节点组成的对象图,它包含窗口或面板中的所有元素。它定义了使用 UI 工具包构建的每个 UI。
在 术语表 中查看。
您需要向层次结构中添加元素才能创建 UI。要在 UI 构建器中向层次结构中添加元素,请将其从 库 选项卡拖动到 层次结构 窗口。您也可以双击 库 中的元素,将其追加到 层次结构。默认情况下,元素没有命名,因此它们在 层次结构 中以其类型名称显示。
要命名元素,请双击 层次结构 中的项目,或更新元素 检查器一个 Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。 更多信息
在 术语表 中查看 窗口中的 名称 属性。
UI 工具包中不强制执行唯一命名,因此它们仅用于 UI 内部的识别。UI 构建器不会使用元素名称进行任何内部识别或功能。
要构建层次结构,您可以在 层次结构 中拖动一个或多个元素以重新排列它们或将它们移动到父级之间
您也可以将元素拖动到 画布 中,以及从 画布 中拖动元素,其中会出现一条 黄线,指示元素放置位置
要复制、粘贴、复制或删除一个或多个选定元素,请右键单击元素并选择菜单中的选项。您也可以使用操作系统的标准快捷键。
当您在 层次结构 面板中复制元素时,它会复制元素及其子元素的 UXML 文本表示。这意味着您可以将其直接粘贴到文本编辑器中。您也可以复制 UXML 文本并将其粘贴到 UI 构建器中。
您对元素执行的所有操作也都会应用于其所有子元素。例如,删除元素会删除其所有子元素,复制元素会复制其下所有元素的整个子树。
当您将元素从库选项卡拖动到层次结构选项卡时,您可能会注意到在层次结构选项卡中,其他子元素以灰显的方式出现。这些是只读元素。这种情况发生在某些内置 UI 控件以及某些 自定义元素 上,这些元素 在创建时创建其内部层次结构。
当您向 `VisualElement` 添加子元素时,子元素将添加到此父元素的 `contentContainer` 中。例如,下面的 ScrollView一个 UI 控件,它在可视区域中显示大量控件,您可以使用滚动条查看。 更多信息
在 术语表 中查看 有一个 Foldout 子元素,它位于 `contentContainer` 内。它还有几个 Scroller 子元素,它们位于阴影树中。阴影树是位于此元素 `contentContainer` 外的子元素的层次结构。
由于 UI 构建器只能编辑它可以在 UXML 文档中表示的内容,因此无法编辑内部层次结构。UXML 不是实时 UI 层次结构的直接副本,而是一组指令。
元素具有可以设置为 UXML 的每个元素属性。您可以将其视为构造函数或初始化参数。这包括 `name` 属性。基本 `VisualElement` 类附带一些所有元素共有的标准属性(因为所有元素都继承自 `VisualElement`),如 `name`、`tooltip` 和 `tabindex`。更高级的元素和控件具有您可以设置的其他属性,例如,`Label` 添加了 `text` 属性。
注意:您可以使用 Enter 键为 `text` 属性添加换行符。
所有标准属性和自定义属性都显示在检查器窗口顶部的 属性 部分。
您可以在属性部分设置属性的值。如果字段以粗体显示,并且字段标签左侧有一条实线,则表示该属性已设置并且未使用默认值。例如,将 `tooltip` 从空设置到 `test`,然后设置回空与最初不设置它是不同的:第一种情况是 `未设置`,而第二种情况是 `设置为空`。`此属性已设置` 的含义是在此元素的 UXML 文本中有一个条目将此属性设置为 `a` 值
如果属性未出现在 UXML 文件中,则表示 `未设置`。
要取消设置属性,请右键单击字段标签并选择 取消设置。
要取消设置所有属性,请右键单击字段标签并选择 取消设置所有属性。
您可以在 画布 中直接更改的唯一属性是文本元素(如 `Button` 或 `Label`)上的 `text` 属性。要在画布中更改 `text` 属性,请双击 画布 中的文本元素。
要提交更改,请按 Enter 键。如果 `text` 属性包含换行符,请使用 Shift + Enter 提交更改。
要取消更改,请按 Esc 键。