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.

TextMesh

Наследует: PrimitiveMesh < Mesh < Resource < RefCounted < Object

Создает PrimitiveMesh из текста.

Описание

Сгенерируйте PrimitiveMesh из текста.

TextMesh можно сгенерировать только при использовании динамических шрифтов с векторными контурами глифов. Растровые шрифты (включая растровые данные в контейнерах TrueType/OpenType, например, цветные шрифты эмодзи) не поддерживаются.

UV-развёртка состоит из четырёх горизонтальных полос, расположенных сверху вниз: 40% высоты для лицевой стороны, 40% для обратной стороны, 10% для внешних и 10% для внутренних сторон.

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

Свойства

AutowrapMode

autowrap_mode

0

float

curve_step

0.5

float

depth

0.05

Font

font

int

font_size

16

HorizontalAlignment

horizontal_alignment

1

BitField[JustificationFlag]

justification_flags

163

String

language

""

float

line_spacing

0.0

Vector2

offset

Vector2(0, 0)

float

pixel_size

0.01

StructuredTextParser

structured_text_bidi_override

0

Array

structured_text_bidi_override_options

[]

String

text

""

Direction

text_direction

0

bool

uppercase

false

VerticalAlignment

vertical_alignment

1

float

width

500.0


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

AutowrapMode autowrap_mode = 0 🔗

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


float curve_step = 0.5 🔗

  • void set_curve_step(value: float)

  • float get_curve_step()

Шаг (в пикселях) используется для аппроксимации кривых Безье. Меньшие значения приводят к более плавным кривым, но их генерация и отрисовка занимают больше времени. Рекомендуется корректировать этот параметр в зависимости от размера шрифта и типичного расстояния просмотра.

Примечание: Изменение этого свойства приведет к перегенерации сетки, что является медленной операцией, особенно при больших размерах шрифта и длинных текстах.


float depth = 0.05 🔗

Если задано значение 0.0 для сетки только для передней поверхности, генерируется глубина, а UV-разметка изменяется для использования полной текстуры только для передней поверхности.


Font font 🔗

  • void set_font(value: Font)

  • Font get_font()

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


int font_size = 16 🔗

  • void set_font_size(value: int)

  • int get_font_size()

Размер шрифта текста в TextMesh. Это свойство работает в тандеме с pixel_size. Более высокие значения приведут к более детализированному шрифту, независимо от curve_step и pixel_size. Рекомендуется поддерживать это значение ниже 63 (включительно) для хорошей производительности и регулировать pixel_size по мере необходимости для увеличения размера текста.

Примечание: Изменение этого свойства приведет к перегенерации сетки, что является медленной операцией, особенно при больших размерах шрифта и длинных текстах. Для эффективного изменения размера текста в реальном времени вместо этого измените Node3D.scale узла.


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

Дополнительный вертикальный интервал между строками (в пикселях), интервал добавляется к спуску строки. Это значение может быть отрицательным.


Vector2 offset = Vector2(0, 0) 🔗

Смещение при отрисовке текста (в пикселях).

Примечание: Изменение этого свойства приведет к перегенерации сетки, что является медленной операцией. Для эффективного изменения положения текста в реальном времени вместо этого измените Node3D.position узла.


float pixel_size = 0.01 🔗

  • void set_pixel_size(value: float)

  • float get_pixel_size()

Размер текста, равный ширине одного пикселя, используется для его масштабирования в 3D. Это свойство работает совместно с font_size.

Примечание: Изменение этого свойства приведет к перегенерации сетки, что является медленной операцией, особенно при больших размерах шрифта и длинных текстах. Для эффективного изменения размера текста в реальном времени вместо этого измените Node3D.scale узла.


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 = "" 🔗

Текст для генерации сетки.

Примечание: Поскольку он является Resource, он не следует правилам Node.auto_translate_mode. Если требуется отключить перевод, это следует сделать вручную с помощью Object.set_message_translation().


Direction text_direction = 0 🔗

Направление написания базового текста.


bool uppercase = false 🔗

  • void set_uppercase(value: bool)

  • bool is_uppercase()

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


VerticalAlignment vertical_alignment = 1 🔗

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


float width = 500.0 🔗

Ширина текста (в пикселях), используемая для выравнивания заливки.