主题样式表 (TSS) 文件是常规 USS 文件。UI 工具包将 TSS 视为不同的资源类型,并将其用于管理目的。
常规 USS 语法和格式适用于 TSS 文件,但主题文件通常通过 @import 规则包含对其他 USS 文件的引用。
注意:USS 文件还支持 @import 规则。
您可以为不同的主题创建不同的 TSS 文件,并在运行时在不同文件之间切换。通常,应将 USS 用于样式。为不同平台或设备自定义外观时,或者如果您的游戏或应用程序支持多种语言,为不同语言使用不同字体时,应考虑 TSS。
注意:将第一个 UIDocument 添加到项目中的游戏对象时,它会在 Assets/UI Toolkit/UnityThemes/UnityDefaultTheme.tss 处生成默认运行时主题资源。虽然可以从头开始创建 TSS,但要使所有默认__ UI__(即用户界面,User Interface)让用户能够与您的应用程序进行交互。Unity 目前支持三种 UI 系统。更多信息
See in Glossary 控件正常工作,必须导入默认运行时主题,然后覆盖或添加新样式来创建自定义主题。
要创建新 TSS:
使用自定义样式创建一个或多个 USS 文件。
执行以下操作之一:
将样式 USS 文件导入主题。
您的自定义主题也会显示在 UI Builder 中 Viewport 的主题列表中。要预览主题,请从 Viewport 中选择主题。
您可以像使用 USS 一样在 UXML 或 C# 中引用 TSS。
还可以将 TSS 设置为面板设置资源的默认主题。如果您有多个面板设置,则每个面板都可以使用不同的 TSS 文件。
注意:如果为面板设置资源设置了 TSS,则不会使 TSS 成为整个项目的全局样式。您仍然需要在 UXML 或 C# 中引用 TSS。
您可以使用 TSS 资源的 Inspector 窗口或 @import 规则导入主题。
注意:如果在当前 TSS 和导入的样式表中都定义了 USS 变量或样式,则当前 TSS 会覆盖导入的样式表。
@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.uss 或 project://database/Assets/myFolder/myFile.uss。/。例如,../myFolder/myFile.uss。
注意:要从包引用文件,请使用从 Packages 文件夹开始的包文件的绝对路径。例如,/Packages/com.unity.package.name/file-name.uss 或 project://database/Packages/com.unity.package.name/file-name.uss。对于包名称,必须使用格式 com.unity.package.name(而非 package name)。