我的场景中有一个固定大小的 3D 表面,我想使用
Label3D
在其上显示动态文本。
我的问题是我不知道前面的文字。目前,如果文本变得太大,它只会剪切到边界之外。有多种方法可以阻止这种情况:
如何在 Godot 4 中实现上述任一目标?请记住,我正在专门处理
Label3D
。 Label3D
中有一个“固定大小”标志,但这只是使文本保持恒定大小,而不管相机距离如何,这完全是另一个功能,与我想要实现的目标无关。
好吧,我还没有用
Label3D
尝试过这个,但是...
您应该能够使用
get_aabb
获取其当前尺寸,然后使用它来计算出转换以使其符合您想要的尺寸。
例如:
# whatever size you want to have
var desired_size:Vector3 = get_desired_size()
# ...
# The current dimensions
var found_aabb := label_3d.global_transform * label_3d.get_aabb()
# Compute the scale to get the desired size
var desired_scale := desired_size / found_aabb.size
# Apply the scale
label_3d.scale(desired_scale)
注意:上面的代码不处理大小或比例的零或无限值。