UI Toolkit elements and utilities for custom Editor interfaces in Unity.
Fixes error in PropertyContainer's documentation example
This version adds some features to PropertyContainer designed to support custom prefab override styles and behaviors. It also has some other fixes and minor improvements.
This release fixes some stuff in PropertyContainer:
This just makes LICENSE a markdown file, which prevents GitHub from getting confused about the license of this project. Refer to v3.0.1 to see the rest of the changes in version 3.
This version sets the minimum unity version supported as 2021.3. It probably still works in 2020.3, but I'm not using that version anymore, so I can't support it. Furthermore, I may start using c#9 features soon, which will make this package definitively incompatible with 2020.3.
Breaking Changes
EditableLabel's internal implementation has changed. It previously used a single TextField to display the text, even when non-editable. Now it uses a Label when non-editable, and replaces it with a TextField when editable. This may affect people doing complex custom styling, and people querying for EditableLabel's internals.
Fix ArrayPropertyField.headerLabelUssClasName typo by renaming it to ArrayPropertyField.headerLabelUssClassName.
Remove UIToolkitExtensions.AddDelayed. We recommend using the new BindingStopper instead when including fields that are bound to different Objects.
Other Changes
Add PropertyContainer.
Add TabbedView.
Add BindingStopper.
Lots of Documentation improvements.
Remove UXML support when REMOVE_UXML_FACTORIES is defined. See https://artehacker.com/UITKEditorAid/manual_pages/embedding_this_package.html at the end for more info.
Some style polishing.
Apply specific theme classes with EditorResources.ApplyCurrentTheme.
Add some extension methods to set multiple style properties in one go.
Add GetBoundSerializedProperty extension method to get a SerializedProperty from a bound field.
Add GetLabelElement extension method to get the label element from a PropertyField.
Add a USS class for empty ListControls (the parent class of our list elements).
Add optional support for selection in ListControl.
Add optional remove button in ArrayPropertyField's footer that removes the selected item.
Add withSeparatorsUSSClassName and headerContentUssClassName to ArrayPropertyField.
Fix changing emptyTextMessage in lists not working.
Fix changing ArrayPropertyField.showSeparators not working.
Add Help button to ListOfInspectors headers. It also shows a tooltip if available.
Show the class name in ListOfInspectors headers when the Object's name is empty.
Add UI for Objects with an invalid script in ListOfInspectors.
Use BindingStopper inside ListOfInspectors to remove the need of adding it to the UI with a delay.
Add emptyTextLabel as a placeholder text to EditableLabel.
Remove update delay from ManagedReferenceField. This lets it act before Unity, which prevents some Unity bugs.
Fix ManagedReferenceField overwritting EditorApplication.delayCall.
Fixes package name. If you're using it directly from git, you should uninstall the previous version and install this one. Sorry.
This version removes the Rebinder mechanism and all the related parts because it's not needed from Unity 2020 forward. That in turn gives us a simpler API and faster code. More info here: https://github.com/OscarAbraham/UITKEditorAid/issues/1