Skip to content

Releases: brunomikoski/ScriptableObjectCollection

New Processor and more QoL changes and improvements

06 Apr 17:30
e496352

Choose a tag to compare

Added

  • New SOCItemGuidProcessor asset postprocessor that enforces valid and unique GUIDs on collection items at import time, replacing the inline validation in CollectionsAssetsPostProcessor
  • Custom CollectionItemQueryPropertyDrawer with foldout UI, rule editing, match type constraint filtering, impossible-rule detection, and human-readable query summaries
  • GUID-based lookup caching for collections (CollectionsRegistry) and items (ScriptableObjectCollection) for faster retrieval
  • CollectionItemIndirectReference now caches resolved references with a hasCachedRef flag to avoid repeated resolution attempts
  • Enhanced error logging in CollectionItemPickerPropertyDrawer with last known names and property paths
  • DrawAdditionalIMGUI() extension point in CollectionCustomEditor for subclass customization
  • GitHub Copilot review instructions (.github/instructions.md)

Changed

  • Renamed CollectionItemQuery.MatchType enum values: NotAnySomeNot, NotAllNone
  • Reduced GC allocations in CollectionItemQuery.Matches() by reusing a HashSet instead of creating a new one per call (by @emtony)
  • CollectionItemDropdown now redirects to the collection when the item type has derived types, instead of immediately creating an item
  • Code generation now outputs UTF-8 without BOM and handles both \r\n and \n line endings
  • Refactored new modifier detection logic in code generation with improved base type filtering
  • CollectionItemPicker now uses reverse iteration for safe removal during enumeration
  • Refactored CollectionsRegistry.ValidateCollections() to validate items within collections using HashSets for duplicate detection
  • Improved bidirectional type assignability check in CollectionsRegistry.GetCollectionsByItemType()
  • Robust UXML asset loading in CollectionCustomEditor with error handling for missing visual tree assets

Fixed

  • ScriptableObjectCollection<T>.ClearCachedValues() now calls base.ClearCachedValues() to properly clear name/GUID lookup dictionaries
  • GUID cache lookups (TryGetItemByGUID, GetCollectionByGUID) now validate the cached entry's GUID still matches before returning, evicting stale entries
  • SOCItemGuidProcessor deleted asset handling: entries are now removed by path matching instead of attempting to load already-deleted assets
  • Removed UTF-8 BOM from SOCItemGuidProcessor.cs and its .meta file
  • Fixed typo IsKnowCollectionIsKnownCollection across multiple files
  • Fixed typo collectionLastKnowNamecollectionLastKnownName with FormerlySerializedAs for backward compatibility
  • Fixed method name SetUsingBaseClassForItemsSetUseBaseClassForItems
  • Improved null/destroyed Unity object equality checks in ScriptableObjectCollectionItem
  • Removed OnValidate() auto-GUID generation from ScriptableObjectCollectionItem (now handled by the processor)

v2.5.0 - Bug Fixes and QoT Improvements

04 Dec 21:21

Choose a tag to compare

What's Changed

Changed

  • Fixed issue with the TreeView and the unity version compatibility by @RoyTheunissen #182
  • LongGuids are now displayed via their base64 string by @RoyTheunissen #184
  • IndirectReferences are not generated per item type, so it can filter what type of items can be displayed on the picker
  • Fixed issue where renaming one asset on the CollectionEditor could cause some issues
  • Fixed IndirectReference not properly saving items from the dropdown when used inside arrays
  • Fixed overall issues with the CollectionItemQuery.cs
  • Fixed Item picker not respecting the inheritance of items when displayin the picker
  • GUID are now not serialized when invalid, so it doesn't get reserialized in invalid states (#183)

Added

  • Added the option to omit labels in arrays and lists by @RoyTheunissen #181
  • Added indirect conversion between IndirectReference and Item type so they can used as regular SOCItem
  • Menu for generating Static Access for all the collection under the Tools/ScriptableObjectCollection menu
  • Menu for generating Indirect Reference file for all the collection under the Tools/ScriptableObjectCollection menu
  • Added extra validation for valid filenames when creating new collections/items

Pull Requests

Full Changelog: v2.4.2...v2.5.0

Bug fixes and improvements

07 Oct 19:24

Choose a tag to compare

What's Changed

Full Changelog: v2.4.1...v2.4.2

Bug Fixes and Improvements

21 Aug 10:48

Choose a tag to compare

What's Changed

  • Fixed issue when creating multiple items without renaming it would cause a null reference.
  • Removed Synchronize Assets button from the Collection Editor, this is already happening multiple times
  • Renamed Generator button to Run Generator instead of Generate Items since was misleading
  • Fixed use of AssetPathExists on older Unity versions
  • Removed Syncronize Button (was not needed anymore)
  • Fixed generator not refreshing CollectionEditor after running the generator
  • Fixed unique name generation for new items

Added

  • Added new label options to make the picker smaller

New Contributors

Full Changelog: v2.4.0...v2.4.1

2.4.0 - QoL and Fixes

24 May 11:55
8eef92a

Choose a tag to compare

What's Changed

Changed

  • Fixed generated static access code overwriting the collection definition
  • Pre 2.3.0 collections will now be assumed to want a namespace setting that is the same namespace as its item type
  • When generating static/indirect access code using the new .g.cs suffix, existing static/indirect access code that uses the old .cs suffix is now automatically removed to prevent compile errors
  • Added Generic SetValue for Collection Generator

Full Changelog: v2.3.9...v2.4.0

Improving duplicating collection and other quality of life improvements

19 Feb 09:24
05f4f07

Choose a tag to compare

Changed

  • Added some general fixes to validate Collection and Items have unique LongGuid
  • Fixed issues when after some operation with the context menu on the CollectionEditor items would not refresh properly
  • Fixed issue when moving items between collection would not generate unique names
  • Removed the post processing of assets that tried to assign items to collections automatically, since this was causing issue when duplicating collections, everyting now is done on the collection
  • Overall code improvement and organization

Added

  • Added new Context Menu for moving items between collections
  • Added the new PropertyDrawer that shows what Collection every item belongs to
  • Added a few more Confirmation dialog when detecting items that looks wrong

What's Changed

Full Changelog: v2.3.8...v2.3.9

Small fixes and QoL Improvements

30 Jan 21:11
33f4d64

Choose a tag to compare

Changed

  • Fixed naming issue on the new Move Items context menu introduced on [2.3.7]
  • Renamed Delete Item to Remove Item on the context menu
  • Updated the Confirmation for the Removal of items, now ask if you just want to remove the reference, remove the reference and delete the asset or cancel the operation
  • Exposed OnEnable and OnDisable from the CollectionCustomEditor to be overriden by other editors

What's Changed

Full Changelog: v2.3.7...v2.3.8

Unity 6 support and other improvements

30 Jan 16:03
c47dd8f

Choose a tag to compare

What's Changed

Added

  • Added new context menu to move items between collections
  • Added new Rename context menu
  • Added new CollectionItemQuery to be used with ItemPIcker

Changed

  • Improved Unity 6 support
  • Fixed null ref when collections settings where not set
  • Fixed some renaming issues
  • Changed event where non automatically loaded items are removed on editor simulation
  • Fixed null ref on empty collection

Full Changelog: v2.3.6...v2.3.7

Improved Context Menu Usability

03 Sep 12:26
c857648

Choose a tag to compare

What's Changed

  • Updated ListView to allow for multiple selection
  • Updated Context Menu functionality to support multiple selection (Copy/Paste/Duplicate/Delete)

Full Changelog: v2.3.5...v2.3.6

Fix items not saved

30 Aug 14:08
d91f267

Choose a tag to compare

Changed

  • Added ApplyModifiedProperties() to property drawers again, since was causing issues with the shareable picker. This was removed on [2.3.4]

What's Changed

  • fix: items not being saved without ApplyModifiedProperties() by @brunomikoski in #155

Full Changelog: v2.3.4...v2.3.5