Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


UQueryBuilder<T>

Utility Object that constructs a set of selection rules to be run on a root visual element.
Read time 2 minutesLast updated 4 days ago

Definition

public struct UQueryBuilder<T> : IEquatable<UQueryBuilder<T>> where T : VisualElement

Remarks

A generic class that allows you to build queries for UI elements of type T. You can refine queries using selectors like name, class, and other conditions. It enables you to search for elements and execute the query on any VisualElement, making it easier to navigate and filter the VisualElement tree in large UIs, by type, name, class, and hierarchy conditions.
For more information, refer to the UQuery manual page.
The following example demonstrates how to use UQueryBuilder to find certain elements in a UI hierarchy and iterate over them:

Examples

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."); }}

Constructors

Constructor

Description

UQueryBuilder`1(UnityEngine.UIElements.VisualElement)Initializes a QueryBuilder.

Methods

Method

Description

ActiveSelects all elements that are active.
AtIndexConvenience overload, shorthand for Build().AtIndex().
BuildCompiles the selection rules into a QueryState object.
CheckedSelects all elements that are checked.
ChildrenSelects all direct child elements of elements matching the previous rules.
ClassSelects all elements with the specified class in the class list, as specified with the
class
attribute in a UXML file or added with VisualElement.AddToClassList method.
DescendentsSelects all elements that are descendants of currently matching ancestors.
EnabledSelects all elements that are enabled.
FirstConvenience overload, shorthand for Build().First().
FocusedSelects all elements that are focused.
ForEachConvenience overload, shorthand for Build().ForEach().
HoveredSelects all elements that are hovered.
LastConvenience overload, shorthand for Build().Last().
NameSelects element with this name.
NotActiveSelects all elements that are not active.
NotCheckedSelects all elements that not checked.
NotEnabledSelects all elements that are not enabled.
NotFocusedSelects all elements that don't currently own the focus.
NotHoveredSelects all elements that are not hovered.
NotVisibleSelects all elements that are not visible.
OfTypeSelects all elements of the specified Type (eg: Label, Button, ScrollView, etc).
ToListConvenience method. shorthand for Build().ToList.
VisibleSelects all elements that are visible.
WhereSelects all elements satifying the predicate.