You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行时如何让自定义字体生效?或如何通过代码重启项目?

解决Godot运行时切换自定义字体不生效的问题

问题根源

gui/theme/custom_font这个项目设置是Godot启动时(编辑器或游戏)一次性加载的,运行时修改ProjectSettings只会改变配置值,不会自动更新当前已经初始化的主题实例,所以界面不会立刻变化。

可行解决方案

不用重启项目,直接操作当前场景的主题实例即可:

步骤1:加载目标字体文件

先通过路径加载字体资源:

var target_font = load(font_path) as Font
if not target_font:
    print("字体加载失败:", font_path)
    return

步骤2:修改全局主题并应用

获取场景树根节点的主题,设置默认字体后重新应用:

# 获取当前全局主题
var global_theme = get_tree().root.get_theme()
# 设置主题的默认字体
global_theme.set_default_font(target_font)
# 把修改后的主题重新赋值给根节点,让所有控件生效
get_tree().root.theme = global_theme

步骤3:同步ProjectSettings(可选)

如果需要让修改在下次启动时生效,同步保存项目设置:

ProjectSettings.set_setting("gui/theme/custom_font", font_path)
ProjectSettings.save() # 保存到project.godot文件

额外场景:单独设置控件字体

如果只需要给某个控件切换字体,直接赋值控件的font属性即可:

$UI/Label.font = target_font
$UI/Button.font = target_font

内容的提问来源于stack exchange,提问作者DotFX

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 15:42:20