Label3D

Наследует: GeometryInstance3D < VisualInstance3D < Node3D < Node < Object

Узел для отображения простого текста в 3D-пространстве.

Описание

Узел для отображения обычного текста в 3D-пространстве. Регулируя различные свойства этого узла, вы можете настроить такие вещи, как внешний вид текста и то, всегда ли он обращен к камере.

Обучающие материалы

Свойства

float

alpha_antialiasing_edge

0.0

AlphaAntiAliasing

alpha_antialiasing_mode

0

AlphaCutMode

alpha_cut

0

float

alpha_hash_scale

1.0

float

alpha_scissor_threshold

0.5

AutowrapMode

autowrap_mode

0

BitField[LineBreakFlag]

autowrap_trim_flags

192

BillboardMode

billboard

0

ShadowCastingSetting

cast_shadow

0 (overrides GeometryInstance3D)

bool

double_sided

true

bool

fixed_size

false

Font

font

int

font_size

32

GIMode

gi_mode

0 (overrides GeometryInstance3D)

HorizontalAlignment

horizontal_alignment

1

BitField[JustificationFlag]

justification_flags

163

String

language

""

float

line_spacing

0.0

Color

modulate

Color(1, 1, 1, 1)

bool

no_depth_test

false

Vector2

offset

Vector2(0, 0)

Color

outline_modulate

Color(0, 0, 0, 1)

int

outline_render_priority

-1

int

outline_size

12

float

pixel_size

0.005

int

render_priority

0

bool

shaded

false

StructuredTextParser

structured_text_bidi_override

0

Array

structured_text_bidi_override_options

[]

String

text

""

Direction

text_direction

0

TextureFilter

texture_filter

3

bool

uppercase

false

VerticalAlignment

vertical_alignment

1

float

width

500.0

Методы

TriangleMesh

generate_triangle_mesh() const

bool

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

Этот режим выполняет стандартное альфа-смешивание. Он может отображать полупрозрачные области, но проблемы с сортировкой прозрачности могут быть видны, когда накладываются несколько прозрачных материалов. GeometryInstance3D.cast_shadow не имеет никакого эффекта при использовании этого режима прозрачности; Label3D никогда не будет отбрасывать тени.

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

В этом режиме отрисовка отсекает все значения ниже пространственно-детерминированного порога, остальные остаются непрозрачными.


Описания свойств

float alpha_antialiasing_edge = 0.0 🔗

  • void set_alpha_antialiasing_edge(value: float)

  • float get_alpha_antialiasing_edge()

Порог, при котором к альфа-каналу будет применено сглаживание.


AlphaAntiAliasing alpha_antialiasing_mode = 0 🔗

Тип применяемого альфа-сглаживания.


AlphaCutMode alpha_cut = 0 🔗

Режим альфа-резки, используемый для спрайта.


float alpha_hash_scale = 1.0 🔗

  • void set_alpha_hash_scale(value: float)

  • float get_alpha_hash_scale()

Масштаб хеширования для Alpha Hash. Рекомендуемые значения между 0 и 2.


float alpha_scissor_threshold = 0.5 🔗

  • void set_alpha_scissor_threshold(value: float)

  • float get_alpha_scissor_threshold()

Порог, при котором альфа-ножницы будут отбрасывать значения.


AutowrapMode autowrap_mode = 0 🔗

Если установлено значение, отличное от TextServer.AUTOWRAP_OFF, текст будет заключен в ограничивающий прямоугольник узла. Если изменить размер узла, он автоматически изменит свою высоту, чтобы показать весь текст.


BitField[LineBreakFlag] autowrap_trim_flags = 192 🔗

Флаги обрезки пространства автопереноса. См. TextServer.BREAK_TRIM_START_EDGE_SPACES и TextServer.BREAK_TRIM_END_EDGE_SPACES для получения дополнительной информации.


BillboardMode billboard = 0 🔗

Режим billboard, используемый для метки.


bool double_sided = true 🔗

Если true, текст также виден сзади, если false, он невидим, если смотреть на него сзади.


bool fixed_size = false 🔗

Если true, label отображается при одинаковом размере независимо от расстояния. Размер метки на экране такой же, как если бы камера была 1.0 вдали от происхождения метки, независимо от фактического расстояния от камеры. Поле вида Camera3D (или Camera3D.size, когда в режиме orthogonal/frustum) все еще влияет на размер, на котором нарисована label.


Font font 🔗

  • void set_font(value: Font)

  • Font get_font()

Конфигурация шрифта, используемая для отображения текста.


int font_size = 32 🔗

  • void set_font_size(value: int)

  • int get_font_size()

Размер шрифта текста Label3D-ов. Чтобы шрифт выглядел более детализированным при близком рассмотрении, увеличьте font_size и одновременно уменьшите pixel_size.

Более высокие размеры шрифта требуют больше времени для отрисовки новых символов, что может привести к подтормаживанию во время игры.


HorizontalAlignment horizontal_alignment = 1 🔗

Управляет горизонтальным выравниванием текста. Поддерживает выравнивание по левому краю, по центру, по правому краю и заполнение (также известное как выравнивание по ширине).


BitField[JustificationFlag] justification_flags = 163 🔗

Правила выравнивания заливки линий.


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()

Текст Color Label3D.


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, Light3D в Environment оказывает влияние на метку.


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 🔗

Флаги фильтра для текстуры.


bool uppercase = false 🔗

  • void set_uppercase(value: bool)

  • bool is_uppercase()

Если true, весь текст отображается в ЗАГЛАВНОМ регистре.


VerticalAlignment vertical_alignment = 1 🔗

Управляет вертикальным выравниванием текста. Поддерживает верх, центр и низ.


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, указанный flag будет включен.