TextRender¶
继承: GeometryRender < VisualRender < Item3D < Item < 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混合。它可以显示半透明区域,但当多个透明材质重叠时,透明度排序问题可能会可见。GeometryRender.cast_shadow在使用此透明度模式时没有效果;TextRender永远不会投射阴影。
AlphaCutMode ALPHA_CUT_DISCARD = 1
此模式仅允许完全透明或完全不透明的像素。除非启用某种形式的屏幕空间抗锯齿,否则粗糙的边缘将是可见的(参见ProjectSettings.rendering/anti_aliasing/quality/screen_space_aa)。此模式也称为公司内测或* 1位透明度*。
注意:此模式可能存在抗锯齿字体和轮廓问题,请尝试调整alpha_scissor_threshold或使用MSDF字体。
注意:当使用字形重叠的文本(例如草书)时,此模式可能会在正文和大纲之间存在透明度排序问题。
AlphaCutMode ALPHA_CUT_OPAQUE_PREPASS = 2
此模式在深度前置图中绘制完全不透明的像素。这比ALPHA_CUT_DISABLED或ALPHA_CUT_DISCARD慢,但它允许在使用适当排序的同时显示半透明区域和平滑边缘。
注意:当使用字形重叠的文本(例如草书)时,此模式可能会在正文和大纲之间存在透明度排序问题。
AlphaCutMode ALPHA_CUT_HASH = 3
此模式会截断低于spatially-deterministic阈值的所有值,其余值将保持不透明。
属性说明¶
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哈希的哈希尺度。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,则无论距离如何,标签都以相同的大小呈现。
用于显示文本的字体配置。
TextRender文本的字体大小。为了使字体在近距离时看起来更详细,请同时增加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。
用于换行和文本整形算法的语言代码,如果留空则使用当前语言环境。
行间距增加(以像素为单位),行间距增加到行下降。这个值可以是负数。
Color modulate = Color(1, 1, 1, 1) 🔗
TextRender的文本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方式缩放。为了使字体在近距离时看起来更详细,增加font_size,同时减少pixel_size。
设置文本的渲染优先级。较高优先级的对象将在较低优先级的对象之前排序。
注意:这仅适用于alpha_cut设置为ALPHA_CUT_DISABLED(默认值)。
注意:这仅适用于透明对象的排序,这不会影响透明对象相对于不透明对象的排序方式,这是因为不透明对象没有排序,而透明对象是从后到前排序(以优先级为准)。
如果true,则Environment中的Light对标签有影响。
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 🔗
返回一个TriangleMesh,标签的顶点遵循其当前配置(例如其pixel_size)。
bool get_draw_flag(flag: DrawFlags) const 🔗
返回指定标志的值。
void set_draw_flag(flag: DrawFlags, enabled: bool) 🔗
如果true,则将启用指定的标志。有关标志列表,请参阅DrawFlags。