Компонент Label визуализирует фрагмент текста на экране в игровом пространстве. По умолчанию он упорядочивается и отрисовывается вместе со всей графикой спрайтов и тайлов. Компонент имеет набор свойств, определяющих способ визуализации текста. В Defold GUI поддерживает текст, но размещение элементов GUI в пространстве игры может оказаться сложной задачей. Текстовые метки эту задачу облегчают.
Чтобы создать компонент Label, кликните ПКМ на игровом объекте и выберите Add Component ▸ Label.
(Если необходимо создать несколько текстовых меток из одного шаблона, лучше создать новый файл компонента Label: кликните ПКМ в папке в браузере Assets и выберите New... ▸ Label, затем добавьте этот файл в качестве компонента к любым игровым объектам.)
В свойстве Font укажите необходимый шрифт и убедитесь, что в свойстве Material установлен материал, соответствующий типу шрифта:
Помимо свойств Id, Position, Rotation и Scale существуют следующие специфичные для компонента свойства:
Следует отметить, что в материале по умолчанию рендеринг теней отключен по соображениям производительности.
Свойство Blend Mode определяет, как графика компонента должна смешиваться с графикой, расположенной позади. Ниже представлены доступные режимы наложения и способы их вычисления:
src.a * src.rgb + (1 - src.a) * dst.rgb
src.rgb + dst.rgb
src.rgb * dst.rgb
Настроив свойство Pivot, можно изменять режим выравнивания текста.
Center
, North
или South
, текст выравнивается по центру.West
, текст выравнивается по левому краю.East
, текст выравнивается по правому краю.Текстовыми метками можно манипулировать во время выполнения, получая и устанавливая текст метки, а также изменяя другие свойства.
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 имеются несколько проектных настроек, относящихся к текстовым меткам.
Did you spot an error or do you have a suggestion? Please let us know on GitHub!
GITHUB