Элементы
Только client Элементы создаются и загружаются через UI.
Создание или поиск элемента само по себе ничего нового не показывает. Элемент виден, только если он находится в дереве корня, добавленного на экран одним из методов UI, и его visible не отключён. RemoveFromHierarchy() скрывает его, сохраняя объект для повторного добавления; Delete() удаляет окончательно.
VisualElement
Заголовок раздела «VisualElement»Базовый тип любого элемента интерфейса. В зависимости от фактического элемента UXML методы поиска автоматически возвращают более точный тип: TextElement, ImageElement, TextFieldElement, ScrollView или DotViewElement.
Свойства
Заголовок раздела «Свойства»| Свойство | Доступ | Описание |
|---|---|---|
childCount |
get | Количество непосредственных дочерних элементов |
hasChildren |
get | Есть ли дочерние элементы |
height |
get | Итоговая высота на экране |
name |
get | Имя элемента из UXML или SetName() |
style |
get | Объект ElementStyle |
visible |
get/set | Участвует ли элемент в отображении |
width |
get | Итоговая ширина на экране |
windowScale |
get | Масштаб HUD-окна, внутри которого находится элемент |
Дерево элементов
Заголовок раздела «Дерево элементов»parent:Add(child: VisualElement)parent:Clear()element:RemoveFromHierarchy()element:Delete(): boolelement:SendToBack()Add()добавляет элемент в контейнер;Clear()отсоединяет всех непосредственных потомков;RemoveFromHierarchy()отсоединяет сам элемент без окончательного удаления;Delete()окончательно удаляет элемент и его обёртки;SendToBack()перемещает элемент позади соседей.
element:GetChild(name: string): VisualElementelement:GetChildAt(index: number): VisualElementGetChild() ищет именованного потомка рекурсивно и возвращает nil, если совпадения нет. GetChildAt() возвращает непосредственного потомка по индексу от 0.
Классы и имя
Заголовок раздела «Классы и имя»element:AddToClassList(className: string)element:EnableInClassList(className: string, enabled: boolean)element:SetName(name: string)Классы используются селекторами USS. EnableInClassList() удобно применять для состояний вроде active, warning или disabled.
Указатель и события
Заголовок раздела «Указатель и события»По умолчанию абсолютный UI может игнорировать мышь. Включите взаимодействие перед регистрацией событий:
button:EnableMouseEvents()
button:OnClick(function(clickCount) print("Clicks: " .. tostring(clickCount))end)
button:OnMouseEnter(function() button:EnableInClassList("hover", true)end)
button:OnMouseLeave(function() button:EnableInClassList("hover", false)end)| Метод | Аргумент callback | Назначение |
|---|---|---|
OnClick(callback) |
clickCount |
Завершённый клик |
OnPointerDown(callback) |
clickCount |
Нажатие кнопки указателя |
OnMouseEnter(callback) |
нет | Указатель вошёл в элемент |
OnMouseLeave(callback) |
нет | Указатель покинул элемент |
Повторная регистрация заменяет предыдущий callback того же события. Передайте nil, чтобы убрать обработчик.
element:GetPickingMode(): numberelement:SetPickingMode(mode: number)| Режим | Число | Поведение |
|---|---|---|
Position |
0 |
Элемент участвует в обработке указателя |
Ignore |
1 |
Элемент пропускает указатель |
EnableMouseEvents() является короткой формой включения режима Position.
Курсор и граница
Заголовок раздела «Курсор и граница»element:SetBorderColor(color: Color)element:SetCursor(cursorName: string): boolSetCursor() возвращает false для неизвестного имени. Поддерживаются:
arrow, hand, text, move, resize-horizontal, resize-vertical, pipette.
TextElement
Заголовок раздела «TextElement»Возвращается для Label и других текстовых элементов.
label.text = "Ready"print(label.text)| Свойство | Тип | Доступ |
|---|---|---|
text |
string |
get/set |
ImageElement
Заголовок раздела «ImageElement»Возвращается для UXML-элемента Image.
local icon = root:GetChild("imgIcon")icon.texture = Textures:GetTexture("Icon.png")| Свойство | Тип | Доступ |
|---|---|---|
texture |
Texture | get/set |
TextFieldElement
Заголовок раздела «TextFieldElement»local input = root:GetChild("txtSearch")input.value = "query"input:Focus()| Свойство | Тип | Доступ |
|---|---|---|
IsFocused |
boolean |
get |
value |
string |
get/set |
Focus() передаёт полю клавиатурный фокус.
DotViewElement
Заголовок раздела «DotViewElement»Специализированный индикатор из нескольких точек.
| Свойство | Тип | Доступ |
|---|---|---|
count |
number |
get/set |
fillToValue |
boolean |
get/set |
value |
number |
get/set |
dots.count = 5dots.value = 3dots.fillToValue = truedots:Reset()Reset() сбрасывает текущее состояние представления.
ScrollView
Заголовок раздела «ScrollView»scroll:CanScrollByDelta(deltaY: number): boolscroll:ScrollByDelta(deltaY: number): boolscroll:ScrollToTop()scroll:ScrollToBottom()scroll:EnableAutoScroll()scroll:DisableAutoScroll()scroll:RefreshVerticalScrollerVisibility()CanScrollByDelta()проверяет, возможно ли прокрутить содержимое в указанном направлении;ScrollByDelta()выполняет шаг прокрутки и возвращает, изменилась ли позиция;- авто-прокрутка удерживает представление у конца при добавлении содержимого;
RefreshVerticalScrollerVisibility()пересчитывает видимость вертикальной полосы.