Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
使用主题编辑器
本文介绍了如何使用 Godot 编辑器及其自带的主题编辑器工具来创建和管理 UI 主题。在开始之前,我们建议你先阅读 GUI 外观简介 ,熟悉一下 GUI 换肤/主题化的基础知识。
主题编辑器是底部面板工具,当一个 Theme 资源被选中进行编辑时,面板会自动激活。面板包含了添加、删除和调整主题类型和主题项目的必要用户界面。面板有一个预览区,用于测试你做出的变化,以及一个窗口对话框,用于对主题项目进行批量操作。
创建主题
和其他任何资源一样,主题可以直接在文件系统面板中创建:右键,选择新建资源...,然后选择 Theme 并点击创建。用来创建项目范围的主题很方便。
也可以在任何控件节点中创建主题。在场景树中选择控件节点后,找到检查器中的 theme 熟悉。然后就可以选择新建 Theme。
这样就会创建一个空主题,并且打开主题编辑器。请记住,这样创建的资源默认是和场景绑定的。可以使用上下文菜单将新建的主题保存为单独的文件。
虽然主题编辑器提供了管理主题类型和项目的工具,主题也包括默认的备用字体,你只能使用检查器面板来编辑。这同样适用于复杂的资源类型的内容,如样式盒和图标——它们会在检查器中打开编辑。
主题编辑器概览
主题编辑器有两个主要部分。主要的主题编辑器位于Godot编辑器的底部,为用户提供了快速创建、编辑和删除主题项目和类型的工具。它提供了挑选和改变控件的可视化工具,抽象了底层的主题概念。另一方面,管理主题项目对话框,提供解决手动改变主题的需求。其对于创建新的编辑器主题时很有用。
主题预览
主编辑器左侧的是一组预览选项卡。默认预览选项卡默认可见,里面有处于各种状态的大多数常用控件。预览是可交互的,所以也可以预览中间状态(比如鼠标悬停)。
可以使用你自己项目中的任意场景创建更多的选项卡。场景的根节点必须是控件节点才能进行预览。点击添加预览按钮然后从文件系统中选择已保存的场景,就可以添加一个新的选项卡。
对场景的修改不会自动反映到预览中。更新预览需要点击工具栏上的重新加载按钮。
预览区域也可以用来快速选择要编辑的主题类型。你只需要点击工具栏上的拾取工具(picker tool),然后把鼠标悬停在预览区域上,就能高亮显示出各种控件节点啦。被高亮的控件会显示它的类名,如果有设置的话,还会显示它的类型变体。直接点击这个高亮的控件,就能立刻在右侧打开它进行编辑。
主题类型与项目
主题编辑器的右侧提供了编辑主题资源中可用的主题类型列表,以及所选类型的内容。类型的项目列表分为几个选项卡,对应于主题中可用的每种数据类型(颜色、常量、样式等)。如果启用了显示默认选项,则对于每个内置类型,其默认主题值都会显示为灰色。如果禁用该选项,则只显示编辑主题本身的可用项目。
通过点击项目旁边的Override按钮,可以将默认主题中的个别项目添加到当前主题中。你也可以通过点击Override All按钮来覆盖所选主题类型的所有默认项目。然后可以用Remove Item按钮移除被覆盖的属性。属性也可以用Rename Item按钮重命名,完全自定义的属性可以用它下面的文本字段添加到列表中。
覆盖的主题项目可以直接在右侧面板中编辑,除非它们是资源。资源具有可用的基本控件,但必须在检查器栏中进行编辑。
样式盒(Stylebox)有一个独有的特色功能,你可以把列表中的某一个样式盒单独固定(pin)起来。被固定的这个样式盒就像是整个团队的‘领头羊’,当你修改它的属性时,所有同类型的样式盒都会跟着它一起同步更新。这样一来,你就可以一次性同时编辑好几个样式盒的属性啦。
虽然可以从预览中选择主题类型,但也可以手动添加。单击类型列表旁边的加号按钮可以打开添加项目类型菜单。在菜单中,可以从列表中选择一种类型,也可以输入任意名称来创建自定义类型。文本字段过滤控件节点列表。
管理与导入项目
点击 管理项目(Manage Items) 按钮,会弹出 管理主题项目(Manage Theme Items) 对话框。
在 编辑项目(Edit Items) 选项卡中,你可以查看并添加主题类型(theme types),同时还能查看和编辑当前选中类型下的所有主题项目(theme items)。
你可以通过点击相应的 Add X Item 并指定其名称,创建、重命名和删除单个主题项目。你也可以按数据类型(使用列表中的画笔图标)或按性质批量删除主题项。Remove Class Items 将删除你为一个控制节点类型定制的所有内置主题项目。Remove Custom Items 将删除所选类型的所有自定义主题项目。Remove All Items 将删除该类型的所有项目。
在 导入项目(Import Items) 选项卡中,你可以从其他的主题里导入各种样式项目。你可以选择从 Godot 的默认主题、Godot 编辑器主题,或者另一个自定义主题中进行导入。你可以导入单个或多个项目,并且还能决定是完整复制它们的数据,还是只保留框架而不带数据。这里有多种方式来勾选或取消勾选你需要的项目,包括手动逐个选择、按层级结构选择、按数据类型选择,以及全选等。如果你选择包含数据(include the data),就会将所有主题项目原封不动地复制到你的主题里。而如果选择省略数据(omit the data),则会创建对应数据类型和名称的项目,但里面是空的——这在某种程度上相当于为你快速生成了一个主题模板。