Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Label3D¶
继承: GeometryInstance3D < VisualInstance3D < Node3D < Node < Object
用于在 3D 空间显示纯文本的节点。
描述¶
用于在 3D 空间显示纯文本的节点。通过调整该节点的各种属性,可以配置文本外观、是否面朝相机等特性。
教程¶
属性¶
|
||
|
||
|
||
|
||
|
||
|
||
|
||
cast_shadow |
|
|
|
||
|
||
|
||
gi_mode |
|
|
|
||
BitField[JustificationFlag] |
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
方法¶
generate_triangle_mesh() const |
|
get_draw_flag(flag: DrawFlags) const |
|
void |
set_draw_flag(flag: DrawFlags, enabled: bool) |
枚举¶
enum DrawFlags: 🔗
DrawFlags FLAG_SHADED = 0
如果打开,环境中的灯光会影响该标签。
DrawFlags FLAG_DOUBLE_SIDED = 1
如果打开,从后面也可以看到文本。如果不打开,从后面看该文本是不可见的。
DrawFlags FLAG_DISABLE_DEPTH_TEST = 2
禁用深度测试,所以这个对象被画在所有其他对象的上面。但是,在绘制顺序中,在它之后绘制的对象可能会覆盖它。
DrawFlags FLAG_FIXED_SIZE = 3
标签会根据深度进行缩放,从而在屏幕上始终以相同的大小显示。
DrawFlags FLAG_MAX = 4
代表 DrawFlags 枚举的大小。
enum AlphaCutMode: 🔗
AlphaCutMode ALPHA_CUT_DISABLED = 0
该模式会执行标准的 Alpha 混合。它可以显示半透明区域,但当多个透明材质重叠时,可能会出现透明度排序问题。GeometryInstance3D.cast_shadow 在使用该透明模式时无效;Label3D 永远不会投射阴影。
AlphaCutMode ALPHA_CUT_DISCARD = 1
该模式仅允许完全透明或完全不透明的像素。除非启用了某种形式的屏幕空间抗锯齿(见 ProjectSettings.rendering/anti_aliasing/quality/screen_space_aa),否则会看到粗糙的边缘。该模式也被称为 Alpha 测试 或 1 位透明度。
注意:该模式可能会出现抗锯齿字体和轮廓问题,请尝试调整 alpha_scissor_threshold 或使用 MSDF 字体。
注意:当使用具有重叠字形的文本(例如草书)时,该模式可能会在正文和轮廓之间,出现透明度排序问题。
AlphaCutMode ALPHA_CUT_OPAQUE_PREPASS = 2
这个模式会在深度预处理时绘制完全不透明的像素。比 ALPHA_CUT_DISABLED 或 ALPHA_CUT_DISCARD 要慢,但能够对半透明区域和平滑边缘进行正确的排序。
注意:文本中存在重叠的字形时(例如手写体),这个模式可能会造成主文本和轮廓的透明度排序问题。
AlphaCutMode ALPHA_CUT_HASH = 3
该模式绘制时会截断所有低于空间确定性阈值的值,其余值将保持不透明。
属性说明¶
float alpha_antialiasing_edge = 0.0
🔗
将在 Alpha 通道上应用抗锯齿的阈值。
AlphaAntiAliasing alpha_antialiasing_mode = 0
🔗
void set_alpha_antialiasing(value: AlphaAntiAliasing)
AlphaAntiAliasing get_alpha_antialiasing()
要应用的 Alpha 抗锯齿类型。见 AlphaAntiAliasing。
AlphaCutMode alpha_cut = 0
🔗
void set_alpha_cut_mode(value: AlphaCutMode)
AlphaCutMode get_alpha_cut_mode()
该精灵的 Alpha 裁剪模式。可能的取值见 AlphaCutMode。
float alpha_hash_scale = 1.0
🔗
Alpha Hash 的哈希比例。推荐 0
和 2
之间的值。
float alpha_scissor_threshold = 0.5
🔗
Alpha 裁剪丢弃数值的阈值。
AutowrapMode autowrap_mode = 0
🔗
void set_autowrap_mode(value: AutowrapMode)
AutowrapMode get_autowrap_mode()
如果设置为 TextServer.AUTOWRAP_OFF 以外的值,则文本将在节点的边界矩形内自动换行。如果你调整节点大小,就会自动更改其高度,从而显示所有文本。要了解每种模式的行为方式,请参阅 AutowrapMode。
BillboardMode billboard = 0
🔗
void set_billboard_mode(value: BillboardMode)
BillboardMode get_billboard_mode()
该标签的公告板模式。可能的值见 BillboardMode。
如果为 true
,则从后面也可以看到文本,如果为 false
,则从后面看它是不可见的。
如果为 true
,则无论距离远近,标签都以相同的尺寸呈现。
用于显示文本的字体配置。
Label3D 文本的字体大小。为了让字体在近距离时看起来更细腻,可增加 font_size,同时减小 pixel_size。
较大的字体大小需要更多时间来渲染新字符,这可能会导致在游戏过程中卡顿。
HorizontalAlignment horizontal_alignment = 1
🔗
void set_horizontal_alignment(value: HorizontalAlignment)
HorizontalAlignment get_horizontal_alignment()
控制文本的水平对齐方式。支持左对齐、居中对齐、右对齐、填充(即两端对齐)。请将其设置为 HorizontalAlignment 常量。
BitField[JustificationFlag] justification_flags = 163
🔗
void set_justification_flags(value: BitField[JustificationFlag])
BitField[JustificationFlag] get_justification_flags()
行两端对齐规则。详见 JustificationFlag。
语言代码,用于断行和文本塑形算法,如果留空则使用当前区域设置。
多行 Label3D 中,行与行之间的垂直间距。
Color modulate = Color(1, 1, 1, 1)
🔗
该 Label3D 的文本颜色 Color。
如果为 true
,深度测试被禁用,对象将按渲染顺序绘制。
Vector2 offset = Vector2(0, 0)
🔗
文本绘制偏移(单位为像素)。
Color outline_modulate = Color(0, 0, 0, 1)
🔗
文本轮廓的色调。
int outline_render_priority = -1
🔗
设置文本轮廓的渲染优先级。优先级高的物体将被排序在优先级低的物体前面。
注意:仅在 alpha_cut 为 ALPHA_CUT_DISABLED(默认值)时适用。
注意:仅适用于透明物体的排序。这不会影响透明物体相对于不透明物体的排序方式。这是因为不透明对象不被排序,而透明对象则从后往前排序(取决于优先级)。
文本轮廓大小。
标签中一个像素宽度对应缩放至的 3D 大小。要让字体在较近距离时也能够看到细节,请在减小 pixel_size 的同时增大 font_size。
设置文本的渲染优先级。优先级高的物体将被排序在优先级低的物体前面。
注意:仅在 alpha_cut 为 ALPHA_CUT_DISABLED(默认值)时适用。
注意:仅适用于透明物体的排序。这不会影响透明物体相对于不透明物体的排序方式。这是因为不透明对象不被排序,而透明对象则从后往前排序(取决于优先级)。
如果为 true
,则 Environment 中的 Light3D 会影响该标签。
StructuredTextParser structured_text_bidi_override = 0
🔗
void set_structured_text_bidi_override(value: StructuredTextParser)
StructuredTextParser get_structured_text_bidi_override()
为结构化文本设置 BiDi 算法覆盖。
Array structured_text_bidi_override_options = []
🔗
void set_structured_text_bidi_override_options(value: Array)
Array get_structured_text_bidi_override_options()
设置 BiDi 覆盖的附加选项。
要在屏幕上显示的文本。
Direction text_direction = 0
🔗
基础文本书写方向。
TextureFilter texture_filter = 3
🔗
void set_texture_filter(value: TextureFilter)
TextureFilter get_texture_filter()
纹理的过滤标志。选项见 TextureFilter。
如果为 true
,所有文本都将显示为大写。
VerticalAlignment vertical_alignment = 1
🔗
void set_vertical_alignment(value: VerticalAlignment)
VerticalAlignment get_vertical_alignment()
控制文本的垂直对齐方式。支持顶部对齐、居中对齐、底部对齐。请将其设置为 VerticalAlignment 常量。
文本宽度(单位为像素),用于自动换行和填充对齐。
方法说明¶
TriangleMesh generate_triangle_mesh() const