You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.MD
+33Lines changed: 33 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,38 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
5
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
[Unreleased]
7
7
8
+
## [2.5.1] - 06/04/2026
9
+
### Added
10
+
- New `SOCItemGuidProcessor` asset postprocessor that enforces valid and unique GUIDs on collection items at import time, replacing the inline validation in `CollectionsAssetsPostProcessor`
11
+
- Custom `CollectionItemQueryPropertyDrawer` with foldout UI, rule editing, match type constraint filtering, impossible-rule detection, and human-readable query summaries
12
+
- GUID-based lookup caching for collections (`CollectionsRegistry`) and items (`ScriptableObjectCollection`) for faster retrieval
13
+
-`CollectionItemIndirectReference` now caches resolved references with a `hasCachedRef` flag to avoid repeated resolution attempts
14
+
- Enhanced error logging in `CollectionItemPickerPropertyDrawer` with last known names and property paths
15
+
-`DrawAdditionalIMGUI()` extension point in `CollectionCustomEditor` for subclass customization
- Reduced GC allocations in `CollectionItemQuery.Matches()` by reusing a `HashSet` instead of creating a new one per call (by @emtony)
21
+
-`CollectionItemDropdown` now redirects to the collection when the item type has derived types, instead of immediately creating an item
22
+
- Code generation now outputs UTF-8 without BOM and handles both `\r\n` and `\n` line endings
23
+
- Refactored `new` modifier detection logic in code generation with improved base type filtering
24
+
-`CollectionItemPicker` now uses reverse iteration for safe removal during enumeration
25
+
- Refactored `CollectionsRegistry.ValidateCollections()` to validate items within collections using HashSets for duplicate detection
26
+
- Improved bidirectional type assignability check in `CollectionsRegistry.GetCollectionsByItemType()`
27
+
- Robust UXML asset loading in `CollectionCustomEditor` with error handling for missing visual tree assets
28
+
29
+
### Fixed
30
+
-`ScriptableObjectCollection<T>.ClearCachedValues()` now calls `base.ClearCachedValues()` to properly clear name/GUID lookup dictionaries
31
+
- GUID cache lookups (`TryGetItemByGUID`, `GetCollectionByGUID`) now validate the cached entry's GUID still matches before returning, evicting stale entries
32
+
-`SOCItemGuidProcessor` deleted asset handling: entries are now removed by path matching instead of attempting to load already-deleted assets
33
+
- Removed UTF-8 BOM from `SOCItemGuidProcessor.cs` and its `.meta` file
34
+
- Fixed typo `IsKnowCollection` → `IsKnownCollection` across multiple files
35
+
- Fixed typo `collectionLastKnowName` → `collectionLastKnownName` with `FormerlySerializedAs` for backward compatibility
36
+
- Fixed method name `SetUsingBaseClassForItems` → `SetUseBaseClassForItems`
37
+
- Improved null/destroyed Unity object equality checks in `ScriptableObjectCollectionItem`
38
+
- Removed `OnValidate()` auto-GUID generation from `ScriptableObjectCollectionItem` (now handled by the processor)
39
+
8
40
## [2.5.0] - 04/12/2025
9
41
## Changed
10
42
- Fixed issue with the `TreeView` and the unity version compatibility by @RoyTheunissenhttps://github.com/brunomikoski/ScriptableObjectCollection/pull/182
@@ -675,6 +707,7 @@ public bool IsValidConsumable(Consumable consumable)
"description": "A library to help improve the usability of Unity3D Scriptable Objects by grouping them into a collection and exposing them by code or nice inspectors!",
0 commit comments