Version: 6000.3
语言: 中文
样式 UI
USS 选择器

USS简介

Unity 样式表 (USS) 是一种文本文件,被识别为支持样式规则的资产。USS 文本文件必须具有.uss外延。

您可以使用 USS 文件来定义游戏和应用程序中 UI 元素的外观和样式。USS 提供了一种将 UI 元素的外观和样式与代码其余部分分开的方法,从而更轻松地管理和维护应用程序的外观。

使用 USS,您可以在单独的 USS 文件中定义按钮、标签、图像和其他 UI 元素的样式,然后在游戏或应用程序代码中应用这些样式。这使得可以通过修改 USS 文件来更改应用程序的外观,而无需更改代码。

USS 由以下部分组成:

  • 包含选择器和声明块的样式规则。
  • 用于识别哪些选择器视觉元素实例化或派生自 C# 的可视化树的节点VisualElement类。您可以设置外观样式、定义行为并将其作为 UI 的一部分显示在屏幕上。更多信息
    请参阅术语表
    样式规则影响。
  • 大括号内的声明块,具有一个或多个样式声明。每个样式声明都有一个属性和一个值。每个样式声明都以分号结尾。

语法

以下是样式规则的一般语法:

selector {
  property1: value;
  property2: value;
}

风格匹配与规则

定义样式表时,可以将其应用于可视化树轻量级节点组成的对象图,用于保存窗口或面板中的所有元素。它定义了使用 UI 工具包构建的每个 UI。
请参阅术语表
.选择器与元素进行匹配,以解析 USS 文件中应用的属性。如果选择器与元素匹配,则样式声明将应用于该元素。

例如,以下规则匹配任何Button对象:

Button {
  width: 200px;
}

支持的选择器类型

USS 支持多种类型的简单和复杂选择器,这些选择器根据不同的条件匹配元素,例如:

  • 元素 C# 类型名称
  • 分配的name财产
  • USS 等级列表
  • 元素在可视化树中的位置及其与其他元素的关系

USS 还支持伪类,您可以将其与选择器一起使用,以定位处于特定状态的元素,或选择:root元素。

如果一个元素与多个选择器匹配,则 USS 将应用优先选择器的样式。

注意:所有选择器都区分大小写。

简单的选择器

USS 支持一组简单选择器,这些选择器类似于 CSS 中的简单选择器,但并不完全相同。下表提供了 USS 简单选择器的快速参考。

选择器类型 语法 比赛
类型选择器 Type {...} 特定 C# 或可视元素类型的元素。
类选择器 .class {...} 具有指定 USS 等级的元素。
名称选择器 #name {..} 具有分配的元素name属性。
通用选择器 * {...} 任何元素。

复杂的选择器

USS 支持 CSS 复杂选择器的子集。下表提供了 USS 复合选择器的快速参考。

选择器类型 语法 比赛
后代选择器 selector1 selector2 {...} 作为可视化树中另一个元素的后代的元素。
子选择器 selector1 > selector2 {...} 作为可视化树中另一个元素的子元素的元素。
多选器 selector1selector2 {...} 与所有简单选择器匹配的元素。

将样式连接到元素

您可以通过以下方法将样式连接到元素:

  • 在 UI Builder 中,使用内联样式或 USS 选择器设置元素的样式。有关更多信息,请参阅使用 UI Builder 设置 UI 样式
  • 在 UXML 中,使用内联样式设置元素样式,或附加带有与此元素匹配的选择器的样式表。有关更多信息,请参阅向UXML添加样式
  • 在 C# 脚本中,将样式直接设置为style属性或将 USS 样式表添加到styleSheet属性,选择器与元素匹配。有关详细信息,请参阅在 C# 脚本中应用样式

支持的角色

USS 选择器支持以下字符:

  • 必须以字母 (A–Za–z) 或下划线 ()。_
  • 可以包含字母、数字 (0–9)、连字符 () 和下划线 ()。-_
  • 选择器区分大小写。例如myClassMyClass是不同的。
  • 选择器不能以数字或连字符开头,后跟数字(例如,.1class.-1class).

USS 选择器还支持以下字符,但您必须使用反斜杠 () 转义它们:\

  • Unicode 字符
  • 特殊字符,如!, , , , , , , , , , , , , , , ,@#$%^&*()+=[]{}|, ,;:, , ,'",,., , , ,<>/?.

注意:UI Builder 不支持所有特殊字符。

其他资源

样式 UI
USS 选择器