UQueryBuilder<T0>
структура в UnityEngine.UIElements
Выполнено в:UnityEngine.UIElementsModule
Описание
Утилита Объект, который конструирует набор правил выбора для запуска на корневом визуальном элементе.
Обобщённый класс, позволяющий строить запросы к элементам интерфейса типа T. Запросы можно уточнять селекторами по имени, классу и другим условиям. Он позволяет искать элементы и выполнять запрос к любому VisualElement, упрощая навигацию и фильтрацию дерева VisualElement в крупных интерфейсах — по типу, имени, классу и условиям иерархии.
Дополнительную информацию см. в Страница инструкции UQuery.
В следующем примере показано, как использовать UQueryBuilder для поиска определенных элементов в иерархии UI и итерации над ними:
using UnityEngine; using UnityEngine.UIElements;
public class UQueryBuilderExample : MonoBehaviour { public UIDocument uiDocument;
private void OnEnable() { // Get the root visual element var root = uiDocument.rootVisualElement;
// Example query: Find all buttons with a specific class name var buttonQuery = new UQueryBuilder<Button>(root) .Class("my-button-class") .Build();
// Iterate over those buttons and add click handlers buttonQuery.ForEach(button => button.clicked += () => OnButtonClick(button));
// Another query: Find all labels that are descendants of elements with the class "container" var labelQuery = new UQueryBuilder<Label>(root) .Descendents<VisualElement>("container") .Build();
// Change the text color of each label found labelQuery.ForEach(label => label.style.color = Color.green); }
private void OnButtonClick(Button button) { Debug.Log($"Button with name {button.name} clicked."); } }
Конструкторы
| Конструктор | Описание |
|---|---|
| UQueryBuilder_1 | Инициализирует QueryBuilder. |
Открытые методы
| Метод | Описание |
|---|---|
| Active | Выбирает все активные элементы. |
| AtIndex | Удобство перегрузки, сокращение для Build().AtIndex(). |
| Build | Компиляция правил выбора в объект UQueryState<T0>. |
| Checked | Выбирает все выбранные элементы. |
| Children | Выбирает все прямые дочерние элементы элементов, соответствующих предыдущим правилам. |
| Class | Выбирает все элементы, у которых в списке классов есть указанный класс, заданный атрибутом class в файле UXML или добавленный методом VisualElement.AddToClassList. |
| Descendents | Рекурсивно выбирает все элементы, которые являются потомками текущих соответствующих предков. |
| Enabled | Выбирает все включенные элементы. |
| First | Удобство перегрузки, сокращение для Build().First(). |
| Focused | Выбирает все элементы, находящиеся в фокусе. |
| ForEach | Удобство перегрузки, сокращение для Build().ForEach(). |
| Hovered | Выбирает все элементы, находящиеся под курсором. |
| Last | Удобство перегрузки, сокращение для Build().Last(). |
| Name | Выбирает элемент с этим именем. |
| NotActive | Выбирает все неактивные элементы. |
| NotChecked | Выбирает все элементы, которые не были отмечены. |
| NotEnabled | Выбирает все элементы, которые не включены. |
| NotFocused | Выбирает все элементы, которые в настоящее время не имеют фокуса. |
| NotHovered | Выбирает все элементы, не находящиеся в поле зрения. |
| NotVisible | Выбирает все элементы, которые не видны. |
| OfType | Выбирает все элементы указанного Типа (например: Метка, Кнопка, ScrollView и т.д.). |
| ToList | Метод удобства. сокращение для Build().ToList. |
| Visible | Выбирает все видимые элементы. |
| Where | Выбирает все элементы, удовлетворяющие предикат. |