TextRender

继承: GeometryRender < VisualRender < Item3D < Item < Object

用于在3D空间中显示纯文本的节点。

描述

用于在3D空间中显示纯文本的节点。通过调整此节点的各种属性,您可以配置文本的外观以及它是否始终面向摄像机等内容。

属性

方法


枚举

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_DISABLEDALPHA_CUT_DISCARD慢,但它允许在使用适当排序的同时显示半透明区域和平滑边缘。

注意:当使用字形重叠的文本(例如草书)时,此模式可能会在正文和大纲之间存在透明度排序问题。

AlphaCutMode ALPHA_CUT_HASH = 3

此模式会截断低于spatially-deterministic阈值的所有值,其余值将保持不透明。


属性说明

float alpha_antialiasing_edge = 0.0 🔗

  • void set_alpha_antialiasing_edge(value: float)

  • float get_alpha_antialiasing_edge()

在alpha通道上应用抗锯齿的阈值。


AlphaAntiAliasing alpha_antialiasing_mode = 0 🔗

要应用的alpha抗锯齿的类型。请参阅AlphaAntiAliasing


AlphaCutMode alpha_cut = 0 🔗

用于精灵的alpha切割模式。有关可能的值,请参阅AlphaCutMode


float alpha_hash_scale = 1.0 🔗

  • void set_alpha_hash_scale(value: float)

  • float get_alpha_hash_scale()

Alpha哈希的哈希尺度。02之间的推荐值。


float alpha_scissor_threshold = 0.5 🔗

  • void set_alpha_scissor_threshold(value: float)

  • float get_alpha_scissor_threshold()

alpha剪刀将丢弃值的阈值。


AutowrapMode autowrap_mode = 0 🔗

如果设置为TextServer.AUTOWRAP_OFF以外的值,则文本将被包裹在节点的边界矩形内。如果调整节点的大小,它将自动更改其高度以显示所有文本。要查看每个模式的行为,请参阅AutowrapMode


BillboardMode billboard = 0 🔗

用于标签的广告牌模式。有关可能的值,请参阅BillboardMode


bool double_sided = true 🔗

如果true,文本也可以从后面看到,如果false,从后面看是不可见的。


bool fixed_size = false 🔗

如果true,则无论距离如何,标签都以相同的大小呈现。


Font font 🔗

  • void set_font(value: Font)

  • Font get_font()

用于显示文本的字体配置。


int font_size = 32 🔗

  • void set_font_size(value: int)

  • int get_font_size()

TextRender文本的字体大小。为了使字体在近距离时看起来更详细,请同时增加font_size,同时减少pixel_size

更高的字体大小需要更多的时间来渲染新角色,这可能会在运行时导致口吃。


HorizontalAlignment horizontal_alignment = 1 🔗

控制文本的水平对齐方式。支持左、中、右和填充或对齐。将其设置为HorizontalAlignment常量之一。


BitField[JustificationFlag] justification_flags = 163 🔗

行填充对齐规则。有关详细信息,请参阅JustificationFlag


String language = "" 🔗

用于换行和文本整形算法的语言代码,如果留空则使用当前语言环境。


float line_spacing = 0.0 🔗

  • void set_line_spacing(value: float)

  • float get_line_spacing()

行间距增加(以像素为单位),行间距增加到行下降。这个值可以是负数。


Color modulate = Color(1, 1, 1, 1) 🔗

  • void set_modulate(value: Color)

  • Color get_modulate()

TextRender的文本Color


bool no_depth_test = false 🔗

如果true,则禁用深度测试,对象将按渲染顺序绘制。


Vector2 offset = Vector2(0, 0) 🔗

文本绘图偏移量(以像素为单位)。


Color outline_modulate = Color(0, 0, 0, 1) 🔗

  • void set_outline_modulate(value: Color)

  • Color get_outline_modulate()

文本轮廓的色调。


int outline_render_priority = -1 🔗

  • void set_outline_render_priority(value: int)

  • int get_outline_render_priority()

设置文本大纲的渲染优先级。较高优先级的对象将在较低优先级的对象之前排序。

注意:这仅适用于alpha_cut设置为ALPHA_CUT_DISABLED(默认值)。

注意:这仅适用于透明对象的排序,这不会影响透明对象相对于不透明对象的排序方式,这是因为不透明对象没有排序,而透明对象是从后到前排序(以优先级为准)。


int outline_size = 12 🔗

  • void set_outline_size(value: int)

  • int get_outline_size()

文本大纲大小。


float pixel_size = 0.005 🔗

  • void set_pixel_size(value: float)

  • float get_pixel_size()

标签上一个像素宽度的大小,以3D方式缩放。为了使字体在近距离时看起来更详细,增加font_size,同时减少pixel_size


int render_priority = 0 🔗

  • void set_render_priority(value: int)

  • int get_render_priority()

设置文本的渲染优先级。较高优先级的对象将在较低优先级的对象之前排序。

注意:这仅适用于alpha_cut设置为ALPHA_CUT_DISABLED(默认值)。

注意:这仅适用于透明对象的排序,这不会影响透明对象相对于不透明对象的排序方式,这是因为不透明对象没有排序,而透明对象是从后到前排序(以优先级为准)。


bool shaded = false 🔗

如果true,则Environment中的Light对标签有影响。


StructuredTextParser structured_text_bidi_override = 0 🔗

为结构化文本设置BiDi算法覆盖。


Array structured_text_bidi_override_options = [] 🔗

  • void set_structured_text_bidi_override_options(value: Array)

  • Array get_structured_text_bidi_override_options()

为BiDi覆盖设置附加选项。


String text = "" 🔗

要在屏幕上显示的文本。


Direction text_direction = 0 🔗

基本文本写作方向。


TextureFilter texture_filter = 3 🔗

过滤纹理的标志。有关选项,请参阅TextureFilter


bool uppercase = false 🔗

  • void set_uppercase(value: bool)

  • bool is_uppercase()

如果true,则所有文本显示为大写。


VerticalAlignment vertical_alignment = 1 🔗

控制文本的垂直对齐方式。支持顶部、中心、底部。将其设置为VerticalAlignment常量之一。


float width = 500.0 🔗

文本宽度(以像素为单位),用于自动包装和填充对齐。


方法说明

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