--- title: Компонент Label brief: Это руководство объясняет, как использовать текстовые компоненты Label в игровых объектах в пространстве игры. --- # Компонент Label Компонент *Label* визуализирует фрагмент текста на экране в игровом пространстве. По умолчанию он упорядочивается и отрисовывается вместе со всей графикой спрайтов и тайлов. Компонент имеет набор свойств, определяющих способ визуализации текста. В Defold GUI поддерживает текст, но размещение элементов GUI в пространстве игры может оказаться сложной задачей. Текстовые метки эту задачу облегчают. ## Создание текстовой метки Чтобы создать компонент Label, кликните ПКМ на игровом объекте и выберите Add Component ▸ Label. ![Add label](images/label/add_label.png) (Если необходимо создать несколько текстовых меток из одного шаблона, лучше создать новый файл компонента Label: кликните ПКМ в папке в браузере *Assets* и выберите New... ▸ Label, затем добавьте этот файл в качестве компонента к любым игровым объектам.) ![New label](images/label/label.png) В свойстве *Font* укажите необходимый шрифт и убедитесь, что в свойстве *Material* установлен материал, соответствующий типу шрифта: ![Font and material](images/label/font_material.png) ## Свойства текстовой метки Помимо свойств *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](../shared/blend-modes.md) ### Опорная точка и выравнивание Настроив свойство *Pivot*, можно изменять режим выравнивания текста. *Center* : Если пивот установлен в значение `Center`, `North` или `South`, текст выравнивается по центру. *Left* : Если пивот установлен в какой-либо режим `West`, текст выравнивается по левому краю. *Right* : Если пивот установлен в какой-либо режим `East`, текст выравнивается по правому краю. ![Text alignment](images/label/align.png) ## Манипулирование при выполнении Текстовыми метками можно манипулировать во время выполнения, получая и устанавливая текст метки, а также изменяя другие свойства. `color` : Цвет метки (`vector4`) `outline` : Цвет обводки (`vector4`) `shadow` : Цвет тени (`vector4`) `scale` : Масштаб метки, либо `number` для равномерного масштабирования, либо `vector3` для масштабирования индивидуально по каждой из осей. `size` : Размер метки (`vector3`) ```lua function init(self) -- Задать текст компоненту "my_label" в том же игровом объекте, -- что и этот скрипт. label.set_text("#my_label", "New text") end ``` ```lua 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* имеются несколько [проектных настроек](/manuals/project-settings#label), относящихся к текстовым меткам.