版本:Unity 6 (6000.0)
语言:English
USS 的最佳实践
在 UI 工具包中应用蒙版效果

主题样式表 (TSS)

主题样式表 (TSS) 文件是常规的 USS 文件。 UI(用户界面) 允许用户与您的应用程序交互。Unity 目前支持三种 UI 系统。 更多信息
参见 术语表
工具包将 TSS 视为一种独特的资源类型,并将其用于管理目的。

常规 USS 语法和格式适用于 TSS 文件,但通常,主题文件通过 @import 规则引用其他 USS 文件。

注意:USS 文件也支持 @import 规则。

创建 TSS

您可以为不同的主题创建不同的 TSS 文件,并在运行时在它们之间切换。通常,您应该将 USS 用于样式。当您自定义不同平台或设备的外观和感觉时,或者当您的游戏或应用程序支持多种语言时,您使用不同语言的不同字体时,请考虑使用 TSS。

注意:当您向项目中的 游戏对象Unity 场景中的基本对象,可以表示角色、道具、场景、摄像机、路点等。游戏对象的的功能由附加在其上的组件定义。 更多信息
参见 术语表
添加第一个 UIDocument 时,它会在 Assets/UI Toolkit/UnityThemes/UnityDefaultTheme.tss 生成一个默认的运行时主题资源。虽然您可以从头开始创建 TSS,但要使所有默认的 UI 控件都能工作,您必须导入默认的运行时主题,然后覆盖或添加新的样式以创建自定义主题。

要创建一个新的 TSS

  1. 使用自定义样式创建一个或多个 USS 文件。

  2. 执行以下操作之一

    • 选择 资源 > 创建 > UI 工具包 > TSS 主题文件 以创建一个空的主题文件并 导入默认主题
    • 选择 资源 > 创建 > UI 工具包 > 默认运行时主题文件 以创建默认运行时主题文件的副本。如果需要,您可以重命名该文件。
  3. 将您的样式 USS 文件导入您的主题。

预览 TSS

您的自定义主题也会出现在 UI Builder 的 视口应用程序在用户屏幕上的可见区域。
参见 术语表
的主题列表中。要预览您的主题,请从 视口 中选择它。

应用 TSS

您可以 在 UXML 中引用 TSSC#,方法与使用 USS 相同。

您还可以将 TSS 设置为 面板设置 资源的默认主题。如果您有多个面板设置,则每个面板设置可以使用不同的 TSS 文件。

注意:如果您为面板设置资源设置了 TSS,它不会使 TSS 成为整个项目的全局样式。您仍然需要在 UXML 或 C# 中引用 TSS。

导入主题

您可以使用 TSS 资源的 检查器一个 Unity 窗口,显示有关当前选定的游戏对象、资源或项目设置的信息,允许您检查和编辑值。 更多信息
参见 术语表
窗口或 @import 规则导入主题。

注意:如果您在当前 TSS 和导入的样式表中都定义了 USS 变量或样式,则当前 TSS 会覆盖导入的样式表。

使用检查器窗口导入主题

  1. 选择 TSS 资源。
  2. 转到检查器窗口 > 继承的主题
  3. 选择 +。这将添加一个新的引用字段。
  4. 选择引用字段中的列表图标。一个下拉列表将显示项目中的所有样式表。
  5. 选择要使用的样式表。
  6. 选择 应用

使用 @import 规则导入默认主题

要导入默认的 Unity 运行时主题,您必须使用以下语法

@import url("unity-theme://default");

注意:此语法中的 URL 是一种特殊情况,它指的是引擎内部的内置默认主题。您不能将此语法用于任何其他主题。

使用 @import 规则导入其他主题

要导入除默认主题以外的主题或 USS 文件,请使用以下语法

@import url("<path-to-file>/<file-name-with-extension>");

您可以使用相对路径或绝对路径

  • 绝对路径从项目的 Assets 文件夹开始,并以 /project://database/ 开头。例如,/Assets/myFolder/myFile.ussproject://database/Assets/myFolder/myFile.uss
  • 相对路径从当前文件开始,不包括 /。例如,../myFolder/myFile.uss

注意:要引用包中的文件,请使用从 Packages 文件夹开始的包文件的绝对路径。例如,/Packages/com.unity.package.name/file-name.ussproject://database/Packages/com.unity.package.name/file-name.uss。您必须使用 com.unity.package.name 的格式而不是 package name 作为包名。

其他资源

USS 的最佳实践
在 UI 工具包中应用蒙版效果