All notable changes to this package will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Added different pooling variants to InstancePool. These variants can be initialised using the InstancePool.Override(...) method. You can also write your own pooling variants for use with InstancePool's static structure.
- Added InstancePool.RemovePool(s) methods to cover clearing pools of all levels, and added a callback to handle pooled instances.
- Added InstancePool.DefaultPoolHasSafetyChecks to switch pooling to a performant unchecked variant by default.
- Added UIToolkit support to EnumToValue.
- Added IList extensions: RemoveUnordered and RemoveUnorderedAt.
- Added Utils.EditorOnly and Utils.DebugOnly.
- Added Bounds2D and NullableBounds2D.
- Removed old serialization for EnumToValue. Please use version 3.1.1 and port EnumToValue data before moving to 4.0.0.
- Removed CodeUtils.
- Removed AssetInstance.
- Removed StyleUtils. Please use default references to serialize StyleSheets into EditorWindows. Or use LoadAssetOfType.
- Changed most internal access to an Assembly Definition Reference, bypassing reflection.
- Simplified EnumToValue UI.
- Renamed InstancePool.RemovePrefabPool to RemovePool.
- Renamed FindBackingProperty to FindBackingPropertyRelative (and added FindBackingProperty to SerializedObject)
- Fixed issues with Instance Pool Debugger.
- Improved serialization porting for EnumToValueDescription objects made in version 2.
- Improved AdvancedDropdownOfSubtypes to better list interfaces and generic types.
- Marked AssetInstance as Obsolete. Please use the built-in ScriptableSingleton type.
- Removed StyleUtils.AddVertxStyleSheets and associated USS.
- Renamed RuntimeUtils to RuntimeExtensions.
- Added ConstraintExtensions.
- Added NullableBounds, a Bounds struct where using methods like Encapsulate will not expand from (0,0,0).
- Reduced version requirement to 2019.4, EnumToValue is excluded below 2020.1
- Added SerializedProperty.SimpleCopyInto
- Upgraded version requirement to 2020.1.
- Added support for 2021.2+
- Removed RotationUtils
- EnumToValue changes:
- Removed EnumToValueDictionary, EnumToValue now handles all enum configurations
- Ported data structures to a key value pair configuration. If you have issues with this, revert changes and switch to 2.4.5.
- Fixed issues with multiple EnumToValues on the same object (or nested).
- Added Icon to IAdvancedDropdownItem
- Added AdvancedDropdownOfSubtypes to replace AdvancedDropdownUtils.CreateAdvancedDropdownFromType
- Added SerializedProperty.ReverseArray
- Added EditorUtils.GetFieldInfoFromProperty
- Added EditorUtils.GetSerializedTypeFromFieldInfo, returns the element type Unity would serialize for a given FieldInfo.
- Added a FindBackingProperty method for SerializedProperty
- Added CreateAdvancedDropdownFromAttribute without generics.
- Added non-generic AdvancedDropdownUtil.CreateAdvancedDropdownFromType
- Made various AdvancedDropdownUtil functions public
- Fixed issues with EnumToValue additions
- Added SerializedProperty.LogAllProperties
- Added AdvancedDropdownUtil additions that allow remapping types to multiple results
- Changed AdvancedDropdownUtil functions to have a validate func parameter that allows for excluding results entirely
- Fixed key serialization with EnumToValueDictionary
- Fixed BuildSceneScope to function correctly when scenes are not active in Build Settings
- Added minimum size to the AdvancedDropdownUtils functions.
- Fix for EnumToValueDictionary drawers.
- Fix for PooledListView not properly handling enable and disable with snapping active.
- Fixed PooledListView code running in edit-mode (and prefab mode at runtime) that caused start and end padding elements to be duplicated.
- Fixed layout issue for EnumToValue when using [HideFirstEnumValue].
- Added a clearer Release function to PooledListView. This is identical to Bind(null).
- Fixed startup exceptions with PooledListView.
- Added optional explicit navigation to PooledListView.
- If using Vertx.Editors, that requires an update too.
- Added PooledListView.
- Added Instance Pool Debugger.
- Changed Instance Pool to move unpooled objects to the active scene when a parent is not specified.
- Added RotationUtils, providing Rotate and RotateRef extensions to Quaternion.
- Added rect.GetNextGUIRect, alternate version of NextGUIRect which returns a new rect.
- EnumToValue now supports drawing complex nested serialization, and custom property drawers.
- Exposed Instance Pool scene.
- Minor drawer improvements for EnumToValue.
- Changed InstancePool to instance prefabs with their original position, rotation, and scale if not provided.
- Fixed InstancePool disregarding the provided localScale parameter.
- Added support for Enter Play Mode Options disabling domain reload.
- Added InstancePool.IsPooled(prefab, instance)
- Added EditorGUIUtils.ZeroIndentScope for temporarily resetting EditorGUI.indentLevel
- Added EditorUtils.SetSceneViewHierarchySearch and GetSceneViewHierarchyWindow.
- Added GetCurrentlyPooledCount to InstancePool.
- Moved Project Browser and Folders functions from EditorGUIUtils to EditorUtils.
- SerializedProperty.ToFullString shows full precision for vector types.
- InstancePool type can be inferred. InstancePool.Get(prefab) becomes InstancePool.Get(prefab).
- ProportionalValues now has an OnValueChanged callback and is accessed via indexers and Length.
- PropertyDropdownUtils renamed to AdvancedDropdownUtils and slightly reworked.
- Added AdvancedDropdownAttribute. This can be added to types to generate an AdvancedDropdown with them by calling AdvancedDropdownUtils.CreateAdvancedDropdownFromAttribute.
- Added EditorGUIUtils ReorderableListAddButton and ReorderableListHeaderClearButton.
- Added SetCapacity and TrimExcess functions to InstancePool.
- InstancePool now uses a HashSet and logs in the editor when items are pooled twice.
- Added some logging and copying functionality to SerializedProperty.
- Added Object.TrimName to trim (Clone) from instantiated objects.
- Fix for BuildSceneScope to function with disabled scenes.
- Added missing EnumToValueDrawer, updated it to support direct generic serialization.
- Initial release.