主题

本页面为自动翻译,可能包含错误。如果发现问题,请通过“编辑此页面”链接帮助修正。

Turian 的 Studio 及其已发布的游戏共享同一个 GUI 层(DVUI,内部称为 "Guinevere"),以及构建在其之上的同一个主题系统。一个 .uitheme 资源描述颜色和圆角;同一个资源既可以被选为 Studio 自身的界面外观,也可以作为已构建游戏启动其 UI 时使用的主题。


.uitheme 资源

.uitheme 文件是 JSON 格式。它涵盖:

  • 基础颜色:fillfill_hoverfill_presstexttext_hovertext_pressborderfocus,以及一个 dark 标志。
  • 七个样式组,每个都为某个角色覆盖基础颜色:control(按钮)、window(根画布和标签栏)、highlight(选择/菜单项)、err(破坏性操作)、app1(停靠面板主体外观——见下文),以及 app2/app3(保留供项目特定用途)。
  • corner——默认控件圆角类型(square/round/chamfer/…)和半径。
  • panel_border_width——停靠面板边框的粗细,以逻辑像素为单位。主题可以保持默认值,或将其设置为 0 以完全隐藏面板边框。
  • font_family——一个可选的建议字体系列名称(必须已经加载——见下文的字体)。留空则保留基础主题的字体。

window(根画布和标签栏)和 app1(停靠面板主体)在每个内置预设中都被特意赋予了不同的填充色/边框色,以便面板的边界一眼就能识别,而不是与其余界面融为一体。

字体的大小特意不属于 .uitheme 的一部分——它保持为一个独立的 Studio 范围设置(见下文的字体大小与缩放),这样它就不会在每次切换主题时都发生变化。

从资源浏览器创建一个:右键单击 → Create → UI/Theme → 五个内置预设之一(作为一个起点,您之后可以编辑它),或双击一个现有的 .uitheme 资源,在检查器中打开其编辑器——每个角色都有一个颜色选择器,外加一个实时预览面板。

内置预设

引擎自带五个主题,即使没有打开任何项目也始终可用:DarkLightDark High ContrastDarculaCatppuccin

Studio 的主题、字体大小和缩放

有两个等效的地方可以控制 Studio 自身的外观:

  • Settings → UI——一个包含 Theme 下拉菜单、Font Size 和 Zoom 滑块、Import/Export 按钮,以及下方 System Font 选择器的面板。更改会在 Save 时生效。
  • View → Theme——一个用于快速更改的菜单,无需单独的 Save 步骤。将鼠标悬停在某个主题条目上会立即预览它(将鼠标移开,或不点击就关闭菜单,会恢复到实际选定的内容);点击某个条目会立即选择并持久化它。这里的 Font Size 和 Zoom 滑块也会立即应用并持久化,没有悬停预览步骤。

两者都会写入同一个 Studio 范围的偏好设置,存储在 ~/.turian/settings.json / <project>/.turian/settings.json 中——独立于任何单个项目的 .uitheme 资源。

Zoom(0.7×–1.5×)会在您操作系统的显示缩放基础上缩放按钮/标签页/菜单的界面外观,但特意不会改变文本渲染的大小——Font Size(8–20)是一个独立的绝对设置,因此您可以在不受界面其余部分缩放程度影响的情况下,调整出一个舒适的阅读大小。

导入和导出

Studio 会将用户主题保存在一个全局文件夹 ~/.turian/themes/ 中,与任何单个项目分开。Import Theme…(在主题下拉菜单旁边)会将磁盘上任意位置的 .uitheme 文件复制到该文件夹中,使其立即在下拉菜单中可用。Export Theme… 会将当前选定的主题写出到一个文件中,供您在项目之外共享或进行版本控制。

字体

.uitheme 可以通过 font_family(Settings → UI 或主题的检查器编辑器)建议一个字体系列,这会以尽力而为的方式应用——如果该系列未加载,dvui 会静默回退。

对于确实未内置的字体系列,使用 Settings → UI → System Font → Browse… 来选择通过操作系统文件对话框可访问的任意 .ttf/.otf 文件(实际上,这也是您在 Windows、macOS 和 Linux 上访问已安装系统字体的方式)。它会覆盖所有主题的字体,直到被清除为止,与当前激活的是哪个 .uitheme 无关。

已发布游戏的主题

一个项目的项目设置Boot 下有一个 UI Theme 字段,保存着一个 .uitheme 资源的 GUID。设置后,已构建的游戏会在启动时加载该主题,并以它启动其 UI,而不是使用操作系统的浅色/深色默认设置——这与 Studio 自身使用的资源格式和颜色解析代码完全相同,因此您在 .uitheme 检查器预览中看到的内容与实际发布的内容一致。

留空以保持当前行为:游戏遵循操作系统的浅色/深色偏好,没有主题覆盖。


← 所有文档 编辑此页面