docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class BoundsField

    A UI component for editing 3D bounds with center and size values.

    Inheritance
    object
    CallbackEventHandler
    Focusable
    VisualElement
    BaseVisualElement
    BoundsField
    Implements
    IEventHandler
    IResolvedStyle
    ITransform
    ITransitionAnimations
    IExperimentalFeatures
    IVisualElementScheduler
    IContextOverrideElement
    IAdditionalDataHolder
    IInputElement<Bounds>
    IValidatableElement<Bounds>
    ISizeableElement
    INotifyValueChanging<Bounds>
    INotifyValueChanged<Bounds>
    Inherited Members
    BaseVisualElement.contextPrefix
    BaseVisualElement.scaleOverride
    BaseVisualElement.themeOverride
    BaseVisualElement.langOverride
    BaseVisualElement.layoutDirectionOverride
    BaseVisualElement.preferredTooltipPlacementOverride
    BaseVisualElement.tooltipDelayMsOverride
    BaseVisualElement.GetLayoutDirectionUssClassName(Dir)
    VisualElement.disabledUssClassName
    VisualElement.SetActivePseudoState(bool)
    VisualElement.SetCheckedPseudoState(bool)
    VisualElement.Focus()
    VisualElement.SendEvent(EventBase)
    VisualElement.SetEnabledFromHierarchy(bool)
    VisualElement.SetEnabled(bool)
    VisualElement.MarkDirtyRepaint()
    VisualElement.IsMarkedForRepaint()
    VisualElement.ContainsPoint(Vector2)
    VisualElement.Overlaps(Rect)
    VisualElement.DoMeasure(float, VisualElement.MeasureMode, float, VisualElement.MeasureMode)
    VisualElement.ToString()
    VisualElement.GetClasses()
    VisualElement.ClearClassList()
    VisualElement.AddToClassList(string)
    VisualElement.RemoveFromClassList(string)
    VisualElement.ToggleInClassList(string)
    VisualElement.EnableInClassList(string, bool)
    VisualElement.ClassListContains(string)
    VisualElement.FindAncestorUserData()
    VisualElement.SetBinding(BindingId, Binding)
    VisualElement.GetBinding(BindingId)
    VisualElement.TryGetBinding(BindingId, out Binding)
    VisualElement.GetBindingInfos()
    VisualElement.GetBindingInfos(List<BindingInfo>)
    VisualElement.HasBinding(BindingId)
    VisualElement.ClearBinding(BindingId)
    VisualElement.ClearBindings()
    VisualElement.GetHierarchicalDataSourceContext()
    VisualElement.GetDataSourceContext(BindingId)
    VisualElement.TryGetDataSourceContext(BindingId, out DataSourceContext)
    VisualElement.TryGetLastBindingToUIResult(in BindingId, out BindingResult)
    VisualElement.TryGetLastBindingToSourceResult(in BindingId, out BindingResult)
    VisualElement.Add(VisualElement)
    VisualElement.Insert(int, VisualElement)
    VisualElement.Remove(VisualElement)
    VisualElement.RemoveAt(int)
    VisualElement.Clear()
    VisualElement.ElementAt(int)
    VisualElement.IndexOf(VisualElement)
    VisualElement.Children()
    VisualElement.Sort(Comparison<VisualElement>)
    VisualElement.BringToFront()
    VisualElement.SendToBack()
    VisualElement.PlaceBehind(VisualElement)
    VisualElement.PlaceInFront(VisualElement)
    VisualElement.RemoveFromHierarchy()
    VisualElement.GetFirstOfType<T>()
    VisualElement.GetFirstAncestorOfType<T>()
    VisualElement.Contains(VisualElement)
    VisualElement.FindCommonAncestor(VisualElement)
    VisualElement.viewDataKey
    VisualElement.userData
    VisualElement.canGrabFocus
    VisualElement.focusController
    VisualElement.disablePlayModeTint
    VisualElement.usageHints
    VisualElement.transform
    VisualElement.scaledPixelsPerPoint
    VisualElement.layout
    VisualElement.contentRect
    VisualElement.paddingRect
    VisualElement.worldBound
    VisualElement.localBound
    VisualElement.worldTransform
    VisualElement.hasActivePseudoState
    VisualElement.hasInactivePseudoState
    VisualElement.hasHoverPseudoState
    VisualElement.hasCheckedPseudoState
    VisualElement.hasEnabledPseudoState
    VisualElement.hasDisabledPseudoState
    VisualElement.hasFocusPseudoState
    VisualElement.hasRootPseudoState
    VisualElement.pickingMode
    VisualElement.name
    VisualElement.enabledInHierarchy
    VisualElement.enabledSelf
    VisualElement.languageDirection
    VisualElement.visible
    VisualElement.generateVisualContent
    VisualElement.dataSource
    VisualElement.dataSourcePath
    VisualElement.dataSourceType
    VisualElement.experimental
    VisualElement.hierarchy
    VisualElement.cacheAsBitmap
    VisualElement.parent
    VisualElement.panel
    VisualElement.visualTreeAssetSource
    VisualElement.this[int]
    VisualElement.childCount
    VisualElement.schedule
    VisualElement.style
    VisualElement.resolvedStyle
    VisualElement.customStyle
    VisualElement.styleSheets
    VisualElement.tooltip
    Focusable.Blur()
    Focusable.focusable
    Focusable.tabIndex
    Focusable.delegatesFocus
    CallbackEventHandler.RegisterCallback<TEventType>(EventCallback<TEventType>, TrickleDown)
    CallbackEventHandler.RegisterCallbackOnce<TEventType>(EventCallback<TEventType>, TrickleDown)
    CallbackEventHandler.RegisterCallback<TEventType, TUserArgsType>(EventCallback<TEventType, TUserArgsType>, TUserArgsType, TrickleDown)
    CallbackEventHandler.RegisterCallbackOnce<TEventType, TUserArgsType>(EventCallback<TEventType, TUserArgsType>, TUserArgsType, TrickleDown)
    CallbackEventHandler.RegisterCallback<TEventType>(EventCallback<TEventType>, CallbackOptions)
    CallbackEventHandler.RegisterCallback<TEventType, TUserArgsType>(EventCallback<TEventType, TUserArgsType>, TUserArgsType, CallbackOptions)
    CallbackEventHandler.UnregisterCallback<TEventType>(EventCallback<TEventType>, TrickleDown)
    CallbackEventHandler.UnregisterCallback<TEventType>(EventCallback<TEventType>, CallbackOptions)
    CallbackEventHandler.UnregisterCallback<TEventType, TUserArgsType>(EventCallback<TEventType, TUserArgsType>, TrickleDown)
    CallbackEventHandler.UnregisterCallback<TEventType, TUserArgsType>(EventCallback<TEventType, TUserArgsType>, CallbackOptions)
    CallbackEventHandler.UnregisterAllRemovableCallbacks()
    CallbackEventHandler.HasTrickleDownHandlers()
    CallbackEventHandler.HasBubbleUpHandlers()
    CallbackEventHandler.ExecuteDefaultActionAtTarget(EventBase)
    CallbackEventHandler.HandleEventBubbleUp(EventBase)
    CallbackEventHandler.HandleEventTrickleDown(EventBase)
    CallbackEventHandler.ExecuteDefaultAction(EventBase)
    CallbackEventHandler.NotifyPropertyChanged(in BindingId)
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    Namespace: Unity.AppUI.UI
    Assembly: Unity.AppUI.dll
    Syntax
    [UxmlElement]
    public class BoundsField : BaseVisualElement, IEventHandler, IResolvedStyle, ITransform, ITransitionAnimations, IExperimentalFeatures, IVisualElementScheduler, IContextOverrideElement, IAdditionalDataHolder, IInputElement<Bounds>, IValidatableElement<Bounds>, ISizeableElement, INotifyValueChanging<Bounds>, INotifyValueChanged<Bounds>
    Remarks

    The BoundsField is a specialized input component that allows users to edit 3D bounds by specifying both the center point and size dimensions. It provides a structured interface with separate numerical fields for each coordinate (X, Y, Z) of both the center position and size values.

    This component is particularly useful when working with 3D spaces and requiring precise control over boundary definitions, such as in level editors, collision detection setup, or camera framing configurations.

    The field is composed of two main sections:

    1. Center: Three numerical fields for setting the X, Y, and Z coordinates of the bounds center point
    2. Size: Three numerical fields for defining the width (X), height (Y), and depth (Z) dimensions of the bounds
    Examples

    Basic usage of BoundsField in UXML: creating a medium-sized BoundsField in UXML.

    <ui:BoundsField name="myBounds" size="M" />

    Creating and configuring BoundsField in C#: complete example showing creation, configuration, validation, and change handling.

    var boundsField = new BoundsField();
    boundsField.size = Size.M;
    boundsField.value = new Bounds(Vector3.zero, new Vector3(1, 1, 1));
    boundsField.validateValue = (bounds) => bounds.size.x > 0 && bounds.size.y > 0 && bounds.size.z > 0;
    

    // Register for value changes boundsField.RegisterValueChangedCallback(evt => { Debug.Log($"New bounds: Center=, Size="); });

    Using BoundsField with validation for game object bounds: example showing how to use BoundsField to edit game object bounds with size validation.

    var boundsField = new BoundsField();
    

    // Set up validation for minimum size boundsField.validateValue = (bounds) => { var minSize = 0.1f; return bounds.size.x >= minSize && bounds.size.y >= minSize && bounds.size.z >= minSize; };

    // Update game object bounds when value changes boundsField.RegisterValueChangedCallback(evt => { if (!boundsField.invalid) { gameObject.transform.position = evt.newValue.center; // Assuming a cube mesh gameObject.transform.localScale = evt.newValue.size; } });

    Constructors

    BoundsField()

    Default constructor.

    Declaration
    public BoundsField()

    Fields

    labelUssClassName

    The BoundsField Label styling class.

    Declaration
    public const string labelUssClassName = "appui-boundsfield__label"
    Field Value
    Type Description
    string

    rowUssClassName

    The BoundsField row styling class.

    Declaration
    public const string rowUssClassName = "appui-boundsfield__row"
    Field Value
    Type Description
    string

    sizeUssClassName

    The BoundsField size styling class.

    Declaration
    public const string sizeUssClassName = "appui-boundsfield--size-"
    Field Value
    Type Description
    string

    sxFieldUssClassName

    The BoundsField X NumericalField styling class.

    Declaration
    public const string sxFieldUssClassName = "appui-boundsfield__sx-field"
    Field Value
    Type Description
    string

    syFieldUssClassName

    The BoundsField Y NumericalField styling class.

    Declaration
    public const string syFieldUssClassName = "appui-boundsfield__sy-field"
    Field Value
    Type Description
    string

    szFieldUssClassName

    The BoundsField Z NumericalField styling class.

    Declaration
    public const string szFieldUssClassName = "appui-boundsfield__sz-field"
    Field Value
    Type Description
    string

    ussClassName

    The BoundsField main styling class.

    Declaration
    public const string ussClassName = "appui-boundsfield"
    Field Value
    Type Description
    string

    xFieldUssClassName

    The BoundsField X NumericalField styling class.

    Declaration
    public const string xFieldUssClassName = "appui-boundsfield__x-field"
    Field Value
    Type Description
    string

    yFieldUssClassName

    The BoundsField Y NumericalField styling class.

    Declaration
    public const string yFieldUssClassName = "appui-boundsfield__y-field"
    Field Value
    Type Description
    string

    zFieldUssClassName

    The BoundsField Z NumericalField styling class.

    Declaration
    public const string zFieldUssClassName = "appui-boundsfield__z-field"
    Field Value
    Type Description
    string

    Properties

    contentContainer

    The content container of the BoundsField. Always null.

    Declaration
    public override VisualElement contentContainer { get; }
    Property Value
    Type Description
    VisualElement
    Overrides
    VisualElement.contentContainer

    invalid

    Set the validation state of the BoundsField.

    Declaration
    [CreateProperty]
    [UxmlAttribute]
    public bool invalid { get; set; }
    Property Value
    Type Description
    bool

    size

    The BoundsField size.

    Declaration
    [CreateProperty]
    [UxmlAttribute]
    [Header("Bounds Field")]
    public Size size { get; set; }
    Property Value
    Type Description
    Size

    validateValue

    The validation function of the BoundsField.

    Declaration
    [CreateProperty]
    public Func<Bounds, bool> validateValue { get; set; }
    Property Value
    Type Description
    Func<Bounds, bool>

    value

    The value of the BoundsField.

    Declaration
    [CreateProperty]
    [UxmlAttribute]
    public Bounds value { get; set; }
    Property Value
    Type Description
    Bounds

    Methods

    GetSizeUssClassName(Size)

    Declaration
    public static string GetSizeUssClassName(Size enumValue)
    Parameters
    Type Name Description
    Size enumValue
    Returns
    Type Description
    string

    SetValueWithoutNotify(Bounds)

    Sets the value of the BoundsField without notifying the value changed callback.

    Declaration
    public void SetValueWithoutNotify(Bounds newValue)
    Parameters
    Type Name Description
    Bounds newValue

    The new value of the BoundsField.

    Implements

    IEventHandler
    IResolvedStyle
    ITransform
    ITransitionAnimations
    IExperimentalFeatures
    IVisualElementScheduler
    IContextOverrideElement
    IAdditionalDataHolder
    IInputElement<TValue>
    IValidatableElement<TValue>
    ISizeableElement
    INotifyValueChanging<TValue>
    INotifyValueChanged<T>

    Extension Methods

    NotifyValueChangingExtensions.RegisterValueChangingCallback<TValue>(INotifyValueChanging<TValue>, EventCallback<ChangingEvent<TValue>>)
    NotifyValueChangingExtensions.UnregisterValueChangingCallback<TValue>(INotifyValueChanging<TValue>, EventCallback<ChangingEvent<TValue>>)
    VisualElementExtensions.FindNavController(VisualElement)
    RegisterUpdateCallbackExtensions.RegisterUpdateCallback(VisualElement, EventCallback<UpdateEvent>)
    RegisterUpdateCallbackExtensions.UnregisterUpdateCallback(VisualElement, EventCallback<UpdateEvent>)
    VisualElementExtensions.EnableDynamicTransform(VisualElement, bool)
    VisualElementExtensions.EnablePicking(VisualElement, bool)
    VisualElementExtensions.GetChildren<T>(VisualElement, bool)
    VisualElementExtensions.GetContextProvider<T>(VisualElement)
    VisualElementExtensions.GetContextProvider<T>(VisualElement, string)
    VisualElementExtensions.GetContext<T>(VisualElement)
    VisualElementExtensions.GetContext<T>(VisualElement, string)
    VisualElementExtensions.GetExclusiveRootElement(VisualElement)
    VisualElementExtensions.GetLastAncestorOfType<T>(VisualElement)
    VisualElementExtensions.GetPreferredTooltipPlacement(VisualElement)
    VisualElementExtensions.GetSelfContext<T>(VisualElement)
    VisualElementExtensions.GetSelfContext<T>(VisualElement, string)
    VisualElementExtensions.GetTooltipContent(VisualElement)
    VisualElementExtensions.GetTooltipTemplate(VisualElement)
    VisualElementExtensions.HasAncestorOfType<T>(VisualElement, bool)
    VisualElementExtensions.HasAncestorsOfType<T>(VisualElement)
    VisualElementExtensions.IsContextProvider<T>(VisualElement)
    VisualElementExtensions.IsContextProvider<T>(VisualElement, string)
    VisualElementExtensions.IsInvisible(VisualElement)
    VisualElementExtensions.IsOnScreen(VisualElement)
    VisualElementExtensions.ProvideContext<T>(VisualElement, string, T)
    VisualElementExtensions.ProvideContext<T>(VisualElement, T)
    VisualElementExtensions.RegisterContextChangedCallback<T>(VisualElement, string, EventCallback<ContextChangedEvent<T>>)
    VisualElementExtensions.RegisterContextChangedCallback<T>(VisualElement, EventCallback<ContextChangedEvent<T>>)
    VisualElementExtensions.SetPreferredTooltipPlacement(VisualElement, OptionalEnum<PopoverPlacement>)
    VisualElementExtensions.SetTooltipContent(VisualElement, VisualElementExtensions.TooltipContentCallback)
    VisualElementExtensions.SetTooltipTemplate(VisualElement, VisualElement)
    VisualElementExtensions.UnregisterContextChangedCallback<T>(VisualElement, string, EventCallback<ContextChangedEvent<T>>)
    VisualElementExtensions.UnregisterContextChangedCallback<T>(VisualElement, EventCallback<ContextChangedEvent<T>>)
    In This Article
    Back to top
    Copyright © 2026 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)