Version: 2021.3
伪类
USS properties reference

USS properties data types

When using Unity style sheet (USS), you can specify values for VisualElement properties in USS files. You can also assign property values in C#, using the C# properties of VisualElement. Values assigned in C# override values from a USS file.

可使用自定义属性 来扩展 USS。自定义 USS 属性需要 -- 前缀。

This page introduces the supported data types.

USS 数据类型定义 USS 属性接受的值和关键字。

Property Description
<length> Represents a distance value.
<number> Represents either an integer or a number with a fractional component.
<integer> Represents a whole number.
<color> Represents a color. You can define a color with a #hexadecimal code, the rgb() or rgba() function, or a color keyword (for example, blue or transparent).
<resource> Represents an asset in a Resources folder.
<url> Represents an asset specified by a path. You can express it as either a relative path or an absolute path.
<length>{1,4} Represents one to four options for properties that are sharthand for -top-, -bottom-, -left-, and -right- properties, such as padding-top, or border-top-width.
1 length Applies to all four properties.
2 lengths The first applies to -top- and -bottom-. The second applies to -left- and -right-.
3 lengths The first applies to -top-. The second applies to -left and -right-. The third is applied to -bottom-.
4 lengths Applies in this order : -top-, -right, -bottom-, -left-

Length

UI 工具包支持像素 (px) 和百分比 (%) 作为长度的度量单位。像素值是绝对值,而百分比通常相对于元素父级。

例如:

  • width:200px; 表示宽度为 200 像素。
  • width:50%; 表示宽度为父元素宽度的一半。

务必指定度量单位。如果未指定度量单位,则 UI 工具包会假定属性值以像素为单位。

注意:0 是一个不需要度量单位的特殊值。

Numeric

数值表示为浮点或整数字面值。例如:flex:1.0

关键字

Specific keywords are supported for some built-in properties. Keywords provide a descriptive name instead of a number. For example: position:absolute. All properties support the initial global keyword which resets a property to its default value. See USS properties for a list of keywords.

Color

UI 工具包支持以下字面颜色值和函数:

  • 十六进制值:#FFFF00(rgba,每个通道一个字节)、#0F0 (rgb)
  • RGB 函数:rgb(255, 255, 0)
  • RGBA 函数:rgba(255, 255, 0, 1.0)
  • 颜色关键字:bluetransparent

资源

您可以从 USS 文件中引用项目资源,例如字体和纹理。例如,您可以引用纹理作为元素的背景图像。

您可使用 url()resource() 函数来引用资源。引用的资源将在样式表导入期间进行解析。

例如,下面的样式声明使用 resource() 函数引用 Images 目录中名为 img.png 的纹理资源,并将其指定为背景图像。

`background-image: resource("Images/img.png");

Unity 大多数情况下推荐使用 url() 函数。但 resource() 函数自动支持为不同的屏幕密度加载不同版本的图像资源。

Reference assets with the url function

当您使用 url() 函数引用资源时,指定的路径可以是相对的或绝对的:

  • 相对路径必须相对于包含引用资源的 USS 文件的文件夹。
  • 绝对路径是相对于项目的。

路径必须包含文件扩展名。

例如,假设您的项目有一个包含所有样式表的 USS 文件夹,以及一个包含所有图像资源的 Resources 文件夹。

Assets
  └─ Editor
      └─ Resources
      └─ USS

要引用名为 thumb.png 的图像,您可以使用以下路径之一:

相对路径 绝对路径
url("../Resources/thumb.png") url("/Assets/Editor/Resources/thumb.png")

url("project:/Assets/Editor/Resources/thumb.png")

url("project:///Assets/Editor/Resources/thumb.png")

Reference assets with the resource function

resource() 函数可以引用 Unity 的资源文件夹中的资源(ResourcesEditor Default Resources)。您可以通过名称来引用资源。

  • 如果文件位于 Editor Default Resources Resources 文件夹中,必须包含文件扩展名。
  • 如果文件位于 Resources 文件夹中,则不得包含文件扩展名。

例如:

文件路径 引用语法
Assets/Resources/Images/my-image.png resource("Images/my-image")
Assets/Editor Default Resources/Images/my-image.png resource("Images/default-image.png")

Reference image assets for High DPI/Retina screens

如果您需要支持不同屏幕密度 (DPI) 的屏幕,resource() 函数允许您自动加载正确版本的纹理资源。

您必须:

  • 确保纹理的高 DPI 版本在其文件名中带有 @2x 后缀。例如,myimage.png 的高 DPI 版本应为 myimage@2x.png
  • 将纹理资源的常规和高 DPI 版本放在同一项目文件夹中。

当 Unity 加载资源时,它会自动为当前 DPI 屏幕选择正确的版本。

例如,如果您在 USS 中使用 resource("myimage"),Unity 将加载 Resources/myimage.pngResources/myimage@2x.png

Strings

使用引号指定字符串值。例如:--my-property: "foo"

伪类
USS properties reference