label.md 6.9 KB


title: Компонент Label

brief: Это руководство объясняет, как использовать текстовые компоненты Label в игровых объектах в пространстве игры.

Компонент Label

Компонент Label визуализирует фрагмент текста на экране в игровом пространстве. По умолчанию он упорядочивается и отрисовывается вместе со всей графикой спрайтов и тайлов. Компонент имеет набор свойств, определяющих способ визуализации текста. В Defold GUI поддерживает текст, но размещение элементов GUI в пространстве игры может оказаться сложной задачей. Текстовые метки эту задачу облегчают.

Создание текстовой метки

Чтобы создать компонент Label, кликните ПКМ на игровом объекте и выберите Add Component ▸ Label.

Add label

(Если необходимо создать несколько текстовых меток из одного шаблона, лучше создать новый файл компонента Label: кликните ПКМ в папке в браузере Assets и выберите New... ▸ Label, затем добавьте этот файл в качестве компонента к любым игровым объектам.)

New label

В свойстве Font укажите необходимый шрифт и убедитесь, что в свойстве Material установлен материал, соответствующий типу шрифта:

Font and material

Свойства текстовой метки

Помимо свойств Id, Position, Rotation и Scale существуют следующие специфичные для компонента свойства:

Text : Текстовое содержимое метки.

Size : Размер ограничивающей рамки текста. Если опция Line Break включена, ширина задает границу прерывания текста.

Color : Цвет текста.

Outline : Цвет обводки.

Shadow : Цвет тени.

::: sidenote Следует отметить, что в материале по умолчанию рендеринг теней отключен по соображениям производительности. :::

Leading : Коэффициент масштаба для межстрочного интервала. Значение 0 отменяет межстрочный интервал. По умолчанию 1.

Tracking : Коэффициент масштаба для межбуквенного интервала. По умолчанию 0.

Pivot : Опорная точка. Используется при изменении способа выравнивания текста (см. ниже).

Blend Mode : Режим наложения, используемый при рендеринге текстовой метки.

Line Break : Выравнивание текста происходит в соответствии с настройками опорной точки (пивота), а включение данной опции позволяет тексту перетекать в несколько строк. Ширина компонента определяет, в каком месте текст будет разрываться. Следует учитывать, что в тексте должен быть пробел, чтобы он мог прерываться.

Font : Ресурс шрифта, используемый для этой метки.

Material : Материал, используемый для рендеринга этой метки. Убедитесь, что выбран материал, созданный для используемого типа шрифта (bitmap, Distance Field или BMFont).

Режимы наложения

:blend-modes

Опорная точка и выравнивание

Настроив свойство Pivot, можно изменять режим выравнивания текста.

Center : Если пивот установлен в значение Center, North или South, текст выравнивается по центру.

Left : Если пивот установлен в какой-либо режим West, текст выравнивается по левому краю.

Right : Если пивот установлен в какой-либо режим East, текст выравнивается по правому краю.

Text alignment

Манипулирование при выполнении

Текстовыми метками можно манипулировать во время выполнения, получая и устанавливая текст метки, а также изменяя другие свойства.

color : Цвет метки (vector4)

outline : Цвет обводки (vector4)

shadow : Цвет тени (vector4)

scale : Масштаб метки, либо number для равномерного масштабирования, либо vector3 для масштабирования индивидуально по каждой из осей.

size : Размер метки (vector3)

function init(self)
    -- Задать текст компоненту "my_label" в том же игровом объекте,
    -- что и этот скрипт.
    label.set_text("#my_label", "New text")
end
function init(self)
    -- Задать цвет компоненту "my_label" в том же игровом объекте,
    -- что и этот скрипт. Цвет представляется значением RGBA, хранящимся как тип vector4.
    local grey = vmath.vector4(0.5, 0.5, 0.5, 1.0)
    go.set("#my_label", "color", grey)

    -- ...и убрать обводку, установив ее альфу в 0...
    go.set("#my_label", "outline.w", 0)

    -- ...и увеличить масштаб в два раза по оси X.
    local scale_x = go.get("#my_label", "scale.x")
    go.set("#my_label", "scale.x", scale_x * 2)
end

Конфигурация проекта

В файле game.project имеются несколько проектных настроек, относящихся к текстовым меткам.