Godot 如何在标签上居中放置文本?

Godot how to center text on label?

我刚刚创建了一个新的 Godot 项目并创建了一个带有文本的标签。即使使用对齐:居中,当我 运行 游戏时,文本仍保持在左上角。

Label.tscn

[gd_scene format=2]

[node name="Label" type="Label" index="0"]

anchor_left = 0.0
anchor_top = 0.0
anchor_right = 0.0
anchor_bottom = 0.0
margin_right = 40.0
margin_bottom = 14.0
rect_pivot_offset = Vector2( 0, 0 )
rect_clip_content = false
mouse_filter = 2
mouse_default_cursor_shape = 0
size_flags_horizontal = 1
size_flags_vertical = 4
text = "heylab"
align = 1
valign = 1
percent_visible = 1.0
lines_skipped = 0
max_lines_visible = -1
_sections_unfolded = [ "Anchor" ]

只需将 AlignValign 属性设置为 Center 即可使文本居中。标签的边界矩形必须缩放才能真正看到效果。您可以通过在 2D 视图中拖动矩形的控制点或在检查器的 "Control" 部分更改矩形的 "Margin" 或 "Size" 来实现。

将Align 和Valign 设置为Center 后,您必须同时调整anchor 和margin。你有一些不同的选择来做到这一点。

  • 在布局中选择 "Center" 将通过将锚点调整为 0.5(屏幕中心)来使标签居中,并计算边距,以便 Rect 居中(不改变其大小).

  • 在 Layout 中选择 "Full Rect" 会将 anchor 设置为 (0, 0, 1, 1, 即全屏),margins 为 0,并会更改 Label 的 Rect节点,这样节点就会填满屏幕。

当您 select 控制节点(标签、容器等)时,布局按钮会出现在工具栏中。 screenshot to show Layout button in Godot 3

Obs.: 最好先创建一个 Container 节点,将 Container 节点设置为 Full Rect,然后为您的标签创建子节点。您的锚点设置在父级的 Rect 内。