Version: Unity 6.0 (6000.0)
语言 : 中文
UI Builder 界面概述
使用元素

UI Builder 入门

想了解如何使用__ UI__(即用户界面,User Interface)让用户能够与您的应用程序进行交互。Unity 目前支持三种 UI 系统。更多信息
See in Glossary
Builder 创建 UI 吗?请从使用此示例开始。

要在 UI Builder 中创建 UI,请执行以下操作:

  1. 创建一个新的 UI 文档 (UXML)。
  2. 添加元素以创建 UI 层级结构。
  3. 在检视面板 (Inspector) 中设置属性和样式属性。
  4. 当多个元素开始需要相同的样式属性时,请创建 USS 样式表和选择器
  5. 测试 UI,如果对结果满意,请将内联样式属性提取到 USS 类中
  6. 保存 UI 文档 (UXML)。

先决条件

在开始之前,请熟悉以下内容:

概述示例

此示例为创建列表视图运行时 UI 示例创建主视图。它创建一个作为背景的根元素,其中包含两个容器。一个容器用于存放角色名称列表,另一个容器用于存放角色详细信息。在角色详细信息容器中,可以添加背景和前景帧。最后,为角色名称添加两个标签。此示例不会创建角色名称列表条目 UI。

最终主视图布局
最终主视图布局

创建根元素

创建一个新项目,然后创建一个覆盖整个屏幕的根视觉元素。将根元素设置为具有背景颜色并将所有子元素居中到屏幕中间。

  1. 使用任何模板在 Unity 中创建项目。

  2. 选择窗口 (Window) > UI 工具包 (UI Toolkit) > UI Builder

  3. 在 UI Builder 窗口的视口 (Viewport) 窗口的左上角,选择 文件 (File) > 新建 (New) 以创建新的 UXML 文档。

    UI Builder 文件菜单
    UI Builder 文件菜单
  4. 将其命名为 MainView.uxml 并保存。

  5. VisualElement库 (Library) 拖入层级结构 (Hierarchy) 面板。

    通过从库中拖动元素来创建新元素
    通过从库中拖动元素来创建新元素

    提示:还可以双击某个控件将其添加到层级结构 (Hierarchy) 面板。

  6. 层级结构 (Hierarchy) 中选择该元素。

  7. 检视面板 (Inspector) 窗口中,确保灵活 (Flex) > 增长 (Grow)1。这会将 flex-grow 属性设置为 1,使其覆盖整个屏幕。

    设置 Flex 属性
    设置 Flex 属性
  8. 要将所有子元素居中,请将对齐项目 (Align Items)对齐内容 (Justify Content) 都设置为 Center

    居中子项
    居中子项
  9. 背景 (Background) > 颜色 (Color) 设置为 #732526

    注意:默认情况下,颜色的 Alpha 值为 0,这会使颜色完全透明。要使颜色不透明,需将 Alpha 值设置为 255

    根元素的背景颜色
    根元素的背景颜色

创建父容器

在根元素下方创建一个新的 VisualElement。此元素成为 UI 左右两部分的父容器。

  1. VisualElement库 (Library) 拖到 层级结构 (Hierarchy) 面板中的根 VisualElement。

    添加子 VisualElement
    添加子 VisualElement
  2. 层级结构 (Hierarchy) 中选择该元素。

  3. 检视面板 (Inspector) 窗口中,将灵活 (Flex) > 方向 (Direction) 设置为 row

  4. 灵活 (Flex) > 增长 (Grow) 设置为 0

  5. 大小 (Size) > 高度 (Height) 设置为 350 个像素。

    居中容器属性
    居中容器属性

创建角色名称列表容器

添加 ListView 作为容器的子元素来保存角色名称。

  1. ListView库 (Library) 拖到层级结构 (Hierarchy) 面板中的容器 VisualElement 上。

  2. 层级结构 (Hierarchy) 中选择该元素。

  3. 检视面板 (Inspector) 窗口中,将名称 (Name) 设置为 CharacterList

    包含空元素的背景容器
    包含空元素的背景容器
  4. 大小 (Size) > 宽度 (Width) 设置为 230 个像素。

  5. 间距 (Spacing) > 边距 (Margin) > 右 (Right) 设置为 6 个像素。

    角色列表的大小和边距折叠面板
    角色列表的大小和边距折叠面板
  6. 背景 (Background) > 颜色 (Color) 设置为 #6E3925

  7. 边框 (Border) > 颜色 (Color) 设置为 #311A11

  8. 边框 (Border) > 宽度 (Width) 设置为 4 个像素。

  9. 边框 (Border) > 半径 (Radius) 设置为 15 个像素。

    样式角色列表
    样式角色列表

创建角色详细信息容器

在与 #CharacterList 相同的父级下添加新的 VisualElement 以容纳角色详细信息容器。目的是当用户从左侧列表中选择角色时,会显示角色的肖像、名称和类。

  1. VisualElement库 (Library) 拖到 层级结构 (Hierarchy) 面板中的容器元素上。这是容纳右侧所有元素的容器。

  2. 层级结构 (Hierarchy) 中选择该元素。

  3. 检视面板 (Inspector) 窗口中,将对齐 (Align) > 对齐项目 (Align Items) 设置为 flex-end

  4. 对齐 (Align) > 对齐内容 (Justify Content) 设置为 space-between

    对齐内容属性
    对齐内容属性
  5. 将另一个 VisualElement 添加为右容器的子项。

  6. 层级结构 (Hierarchy) 中选择该元素。

  7. 灵活 (Flex) > 增长 (Grow) 设置为 0

  8. 大小 (Size) > 宽度 (Width) 设置为 276 个像素。

  9. 对齐 (Align) 部分,将 对齐项目 (Align Items)对齐内容 (Justify Content) 都设置为 center

  10. 间距 (Spacing) > 填充 (Padding) 设置为 8 个像素。

    角色详细信息容器的属性
    角色详细信息容器的属性
  11. 背景 (Background) > 颜色 (Color) 设置为 #AA5939

为边框样式创建 USS 类

角色详细信息容器将使用与角色名称列表容器相同的边框样式。创建一个 USS 类以应用于这两个容器。

  1. StyleSheet 面板中,选择 + > 创建新 USS (Create New USS)
  2. 将其命名为 MainView.uss 并选择保存 (Save)
  3. 单击添加新选择器… (Add new selector…) 字段并输入 .border.border 选择器将显示在 StyleSheet 面板中。
  4. StyleSheet 面板中,选择 .border
  5. 检视面板 (Inspector) 窗口中,将边框 (Border) > 颜色 (Color) 设置为 #311A11
  6. 边框 (Border) > 宽度 (Width) 设置为 4 个像素。
  7. 边框 (Border) > 半径 (Radius) 设置为 15 个像素。
  8. .borderStyleSheet 面板拖到角色详细信息容器 VisualElement 上。
  9. .borderStyleSheet 面板拖动到 #CharacterList
  10. 选择 #CharacterList
  11. 检视面板 (Inspector) 窗口中,右键单击边框 (Border) 并选择取消设置 (Unset) 以删除先前设置的内联样式。

UI 布局现在如下所示:

空角色详细信息面板
空角色详细信息面板

创建角色纵向背景

将各个 UI 控件添加到角色详细信息容器中。第一步是添加角色纵向背景。

  1. VisualElement库 (Library) 拖到角色详细信息容器中。

  2. 层级结构 (Hierarchy) 中选择该元素。

  3. 大小 (Size) 部分中,将宽度 (Width)高度 (Height) 都设置为 120 个像素。

  4. 间距 (Spacing) > 填充 (Padding) 设置为 4 个像素。

  5. 背景 (Background) > 颜色 (Color) 设置为 #FF8554

  6. 边框 (Border) > 颜色 (Color) 设置为 #311A11

  7. 边框 (Border) > 宽度 (Width) 设置为 2 个像素。

  8. 边框 (Border) > 半径 (Radius) 设置为 13 个像素。

    角色纵向的背景帧
    角色纵向的背景帧

创建角色纵向前景

接下来,在角色详细信息容器中,为实际图像添加前景。

  1. VisualElement库 (Library) 拖到角色详细信息容器中。

  2. 层级结构 (Hierarchy) 中选择该元素。

  3. 名称 (Name) 设置为 CharacterPortrait

  4. 灵活 (Flex) > 增长 (Grow) 设置为 1,以便图像可以使用所有可用空间。

  5. 背景 (Background) > 缩放模式 (Scale Mode) 设置为 scale-to-fit,这样可以在保持正确纵横比的同时缩放图像,使其与元素大小匹配。

    纵向图像的 VisualElement
    纵向图像的 VisualElement

创建标签

将两个标签控件添加到角色详细信息容器以显示所选角色的名称和类。

  1. 标签 (Label)库 (Library) 拖动到层级结构 (Hierarchy) 面板中的字符详细信息容器。

  2. Name 设置为 CharacterName

  3. 标签 (Label)库 (Library) 拖动到层级结构 (Hierarchy) 面板中的字符详细信息容器。

  4. Name 设置为 CharacterClass

    为名称和类添加标签
    为名称和类添加标签
  5. 选择 #CharacterName 元素。

  6. 文本 (Text) > 字体样式 (Font Style) 设置为 B

  7. 文本 (Text) > 大小 (Size) 设置为 18 个像素。

    更改字体设置
    更改字体设置
  8. 视口 (Viewport) 窗口中,选择文件 (File) > 保存 (Save) 以将更改保存到 MainView.uxml

提取内联样式

在 UI Builder 中,当元素数量较少时,可以创建元素,仅用内联样式来进行尝试。构建更复杂的 UI 时,使用样式表来管理样式会更加轻松便捷。您可以在 UI Builder 中将内联样式提取到样式表。

  1. 选择根视觉元素。
  2. 检视面板 (Inspector) 窗口的样式类列表 (Style Class List) 字段中,输入 .background 作为类名称。
  3. 选择提取内联样式到新类 (Extract Inline Styles to New Classs)。这会根据您为根元素设置的内联样式创建一个 .background 类选择器,并更新根视觉元素的 UI 文档 (UXML),以便从内联样式改为使用该类选择器。
  4. 视口 (Viewport) 窗口中,选择文件 (File) > 保存 (Save)

如果要继续创建列表视图运行时 UI 示例,可对其余所有元素重复样式提取步骤,并按照说明创建示例。

其他资源

UI Builder 界面概述
使用元素