This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Defold поддерживает особый тип GUI-ноды, позволяющий отображать текст в GUI-сцене. Любой ресурс Font, добавленный в проект, может быть использован для рендеринга ноды Text.
Предпросмотр в редакторе поддерживает формирование глифов и раскладку справа налево с помощью системы рендеринга шрифтов движка. Необходимые настройки шрифта и App Manifest описаны в разделе Поддержка раскладки текста.
Шрифты, которые планируется использовать в GUI-нодах Text, должны быть добавлены в компонент GUI. Кликните ПКМ на папке Fonts, используйте контекстное меню GUI или нажмите соответствующее клавиатурное сокращение.

Нода Text обладает набором специфических свойств:
Выполните настройку векторного шрифта, добавьте ресурс .font в Fonts GUI-сцены и выберите его на текстовой ноде. Установите Material ресурса шрифта в /builtins/fonts/font-vector.material. Управляйте отображаемым размером через Font Size ноды.
Для цветных эмодзи также выполните настройку резервного COLRv1-шрифта и его включения в бандл. Создайте текстовую ноду с id text, оставьте её Text пустым и добавьте следующее в .gui_script GUI-сцены:
function init(self)
local node = gui.get_node("text")
local text = "Hello 😀 🍎 🚀"
local font_resource = gui.get_font_resource(gui.get_font(node))
-- Добавить резервный шрифт один раз для этого общего ресурса шрифта.
font.add_font(font_resource, "/fonts/NotoColorEmoji-Regular.ttf")
font.prewarm_text(font_resource, text, function(self, request_id, result, err)
if result then
gui.set_text(node, text)
else
print("Could not prepare GUI text:", err)
end
end)
end
gui.get_font() возвращает имя шрифта внутри GUI-сцены; gui.get_font_resource() разрешает это имя в ресурс шрифта для font.add_font(). Другие ноды и Label, использующие этот ресурс, также получают резервный шрифт, поэтому инициализируйте его только один раз. Текст задаётся после успешного прогрева.
Настроив пивот ноды, можно изменить режим выравнивания текста.
Center, North или South, текст выравнивается по центру.West, текст выравнивается по левому краю.East, текст выравнивается по правому краю.
Нода Text реагирует на любые общие функции манипуляции нодами по настройке размера, пивота, цвета и так далее. Существует несколько функций, предназначенных только для ноды Text:
gui.set_font().gui.set_line_break().gui.set_text().function on_message(self, message_id, message, sender)
if message_id == hash("set_score") then
local s = gui.get_node("score")
gui.set_text(s, message.score)
end
end