godot:在运行时加载动态字体



我正在尝试在运行时使用动态字体draw_string。

字体将保存到以下位置:res://assets/fonts/dynamicfont.tres

这是我的代码:

func _draw():
var font = DynamicFont.new()
font.size = 32
font.set_font_data(load("res://assets/fonts/dynamicfont.tres"))

draw_string(font, Vector2(45, 45), "1 2 3 4", Color(0, 0, 0))

这不会绘制字符串,似乎只是没有加载字体。

我看到很多关于如何生成动态字体的教程,但我找不到一个描述如何在运行时加载并使用它的教程。这可能吗?

我假设您在那里保存了一个动态字体。因此,您的tres不是font_data,而是完整的字体本身。您不应该在draw函数中加载资源,这将无法正常工作。

在就绪功能中初始化字体,然后在绘图中使用:

var font
func _ready():
font = load("res://assets/fonts/dynamicfont.tres")
font.size = 32
func _draw():
draw_string(font, Vector2(45,45), "1 2 3 4")

如果您想更改字体,请在draw函数之外进行更改,然后调用update((强制重新绘制

最新更新