Phase 6 updates

Phase 6 · Slice 32 ·

UI Toolkit composite fields

  • BaseCompositeField with Vector2Field, Vector3Field, Vector4Field, Vector2IntField, Vector3IntField, RectField and RectIntField: a FloatField or IntegerField per part (named unity-x-input and so on, labelled X, Y, Z, W, H), in lines of 2, 3 or 4 (lines of fewer than three padded with a spacer; rects in two field groups, position then size), the first field of each line marked. Setting the value fills the parts; a part's change makes the whole value's after the part's own ChangeEvent bubbles up; isDelayed passes down.
  • BoundsField (Center and Extents Vector3Fields) and BoundsIntField (Position and Size Vector3IntFields), with their classes and names as Unity's.
  • The default theme lets a composite field's input fill its row (its parts stack, as in Unity's runtime theme). All of them can be written in UXML.
  • Checked by ui_toolkit_vector_fields (6000.3): every field's structure, classes, labels and texts, values set and changed through a part, events, isDelayed, the theme's styles and the parts' widths.
  • Next: virtualized ListView (fixed and dynamic item heights); TreeView.