Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


ObjectField

Object field used with the advanced search picker.
Read time 11 minutesLast updated 4 days ago

Definition

[UxmlElement]public class ObjectField : BaseField<Object>, IEventHandler, IResolvedStyle, ITransform, ITransitionAnimations, IExperimentalFeatures, IVisualElementScheduler, ICustomStyle, IBindable, IMixedValueSupport, INotifyValueChanged<Object>

Remarks

Open the Search's advanced picker with a customized view. Here is an example that shows how to use this object field in a custom window:

Examples

using UnityEditor;using UnityEditor.Search;using UnityEngine;using UnityEngine.Search;using UnityEngine.UIElements;class MyCustomWindowWithObjectField : EditorWindow{ TextField m_TextField; [MenuItem("Tests/My Custom Window/Open")] static void OpenWindow() { var window = CreateWindow<MyCustomWindowWithObjectField>(); window.Show(); } void CreateGUI() { // Create a SearchContext for our object selector. We want to search for materials. var searchContext = SearchService.CreateContext("t:material"); // Create the SearchViewFlags for our object selector. We want it to show as a borderless window, in grid view and without the ability to show the saved search queries. var searchViewFlags = SearchViewFlags.Borderless | SearchViewFlags.GridView | SearchViewFlags.DisableSavedSearchQuery; // Create the SearchViewState of our object selector. var searchViewState = new SearchViewState(searchContext, searchViewFlags); // Hide the group bar in this object selector, and set the group we want to show searchViewState.hideTabs = true; searchViewState.group = "all"; // Group that shows all results plus the "None" item. This is the default. // Configure the object field by setting the SearchViewState, SearchViewFlags and SearchContext. // Not all members are needed at the same time. If you provide a SearchViewState, you don't need // to provide the SearchContext and the SearchViewFlags since they are already contained in it. // If you provide none of these values, default ones will be used. var objectField = new UnityEditor.Search.ObjectField("My Material") { searchContext = searchContext, searchViewFlags = searchViewFlags, searchViewState = searchViewState }; objectField.RegisterCallback<ChangeEvent<UnityEngine.Object>>(OnObjectFieldChanged); rootVisualElement.Add(objectField); m_TextField = new TextField("My Material Name") { value = "Null" }; m_TextField.SetEnabled(false); rootVisualElement.Add(m_TextField); } void OnObjectFieldChanged(ChangeEvent<Object> evt) { if (m_TextField == null) return; m_TextField.value = evt.newValue?.name ?? "Null"; }}

Constructors

Constructor

Description

ObjectField()Construct an advanced search field UITK control.
ObjectField(System.String)Construct an advanced search field UITK control.

Properties

Property

Description

objectTypeType of the object to be selected.
searchContextSearch query context used to populate the object picker.
searchViewFlagsSearch flags used to open the search picker window.
searchViewStateSearch view state used to configure the object picker.

Static Properties

Property

Description

singleLineHeightDefault line height used to render the object field control.

Methods

Method

Description

SetValueWithoutNotifySet the object field selected objects.

Static Methods

Method

Description

DoObjectFieldDraw an IMGUI advanced object field.

Inheritance

Inherited Members