一套预设把三层打包在一起。留空的字段会回退到默认值。
| 层 | 决定什么 | 怎么改 |
|---|---|---|
Theme |
颜色、尺寸、文字缩放,以及引擎自己绘制的一切的形状 —— 按钮面板、输入框、标签页、开关贴图 | 手写一份 .tres,或用 tools/make_theme.py 生成 |
GoSkin |
由代码绘制的一切的形状 —— 摇杆、快捷槽的面、引导标记的光圈、标签片、骨架屏、分隔线、分节标题 | 继承它,只重写你在意的那几个方法 |
GoIconSet |
按名字取用的图标 —— 84 个默认图形,或者中世纪图标集覆盖其上的 16 个雕刻图形。可以是贴图包,也可以是图标字体;调用方的代码完全一样 | 提供一整套,或者只覆盖其中几个名字 |
StyleBoxFlat 只有圆角这一种角 ——
把半径设成零得到的是直角,中间没有别的可能。斜切的角、单独一条加粗的边、外发光:引擎一个都画不出来。
而摇杆和引导标记是在 _draw() 里画的,主题根本够不着那里。
挑一套
GoUi.use_preset(GoThemePresets.SCIFI_DARK)
这一行会把主题、皮肤和图标一起换掉。在编辑器里可以用
项目设置 → Gohud → Theme → Preset;用设置资源的话就是 GoConfig.preset。
保留其中一项由自己决定
GoUi.use_preset(GoThemePresets.SCIFI_DARK)
GoUi.config.icons = my_icons # 图标用自己的,其余全部用预设的
显式设置 theme、skin 或 icons 会压过预设。
六套内置预设
| 预设 | 面板 | 皮肤 · 图标 |
|---|---|---|
default_dark · default_light | 圆角 StyleBoxFlat 面板,配分级的阴影层次;主按钮按下时会有升起和沉下的感觉 | GoSkin · 84 个默认图标 |
scifi_dark · scifi_light | 带霓虹边和辉光的切角 GoStyleBoxCut 面板;焦点标记用 GoStyleBoxBracket | GoSkinSciFi —— 六边形摇杆 · 默认图标 |
medieval_dark · medieval_light | 锻造的 GoStyleBoxMedieval 边框 —— 铁与皮革,或羊皮纸 —— 菜单上带铆钉和角落纹饰 | GoSkinMedieval · 覆盖默认集的 16 个雕刻图标 |
中世纪:铁、皮革与羊皮纸
medieval_dark 把暗铁和皮革配上仿古金,medieval_light
则用羊皮纸和墨水。两者都使用 GoSkinMedieval、现有的控件,以及 16 个带雕刻细节的原创图标;
导航类图标回退到原本的图标集。
GoUi.use_preset(GoThemePresets.MEDIEVAL_DARK)
# 或者:GoUi.use_preset(GoThemePresets.MEDIEVAL_LIGHT)
请在创建 UI 之前选好预设。显式设置的 GoConfig.theme、
skin 或 icons 依然优先。打开
res://addons/gohud/examples/medieval/medieval.tscn 并按 F6,就能看到一套能用的
角色面板、行囊和任务日志。里面的按钮可以切换风格变体并打开物品详情。


菜单边框带一颗铆钉和小小的角落纹饰;常驻显示的 HUD 则保持素净的边。
生命、魔法和耐力分别用红、蓝、橄榄绿填充。Cinzel 只用在标题和副标题上;
正文仍沿用宿主项目或默认的字体。随包字体的许可证放在
assets/fonts/cinzel/OFL.txt。
雕刻图标集重画了 bag、book、box、coin、crown、
flag、heart、key、map、potion、shield、
star、sword 和 user,另外新增了 scroll 和 seal。
其余名字一律回退到默认集,所以 close 和 settings 在任何预设下都保持默认图形。
Cinzel 只覆盖拉丁字母;本地化后的标题请通过
shape.fonts 指定各自的字体。
DPITexture 导入;
真实的快捷槽确实用上了该皮肤;改动一份皮肤副本的旋钮能传到快捷槽而不必碰预设;
切回去之后默认和科幻的几何形状能够恢复。
造一个自己的王国
python3 addons/gohud/tools/new_theme.py kingdom --from medieval_dark
# 编辑 themes/palettes/kingdom.json,然后:
python3 addons/gohud/tools/make_theme.py kingdom
godot --headless --path . --import
# 在 GDScript 里,创建控件之前:
GoUi.use_preset(&"kingdom")
JSON 主题可以继承别的 JSON 主题。省略的值沿用父主题的设置; 循环继承会被拒绝。生成出来的预设会保留父主题的图标集。
| 设置项 | 效果 |
|---|---|
shape.material | 0:铁 · 1:皮革 · 2:羊皮纸。决定表面的纹路。 |
shape.grain_alpha | 纹理不透明度。设为 0 得到干净的表面。 |
shape.ornament_scale · shape.bevel_strength | 菜单角落纹饰的大小,以及斜面高光的强度。 |
shape.fonts | 把 title、subtitle、caption、body 和 button 这几个角色映射到插件内的 res:// 字体文件。省略的角色保持继承来的字体。 |
skin.dials | 快捷槽圆角、铆钉是否显示、纹理和高光。下面的完整表格列出了每一个旋钮。 |