Releases: malanek/SerializedCollections
Release 1.1.24
Release 1.1.22
✨ Features
- Added support for resizable columns in the serialized dictionary inspector via drag handles.
- Implemented
IEquatable<Array2D<T>>for value-based comparisons.
Release 1.1.20
New Feature: Rich Text Resizable Text Area for Unity Editor
Added:
ResizableRichTextAreaAttribute– A new attribute that allows for resizable text areas with rich text support in Unity's editor.ResizableRichTextAreaDrawer– Custom property drawer that enables dynamic resizing of text areas while supporting rich text rendering.- Toggle button (
Rich) to switch between plain and rich text modes. RichTextUtility– A static utility class providing extension methods to easily format text with rich text tags (color, bold, italic, size).
Release 1.1.15
Added New Features to SerializedDictionary
GetRandomSubset(int count)
-
Description: Returns a random subset of key-value pairs from the dictionary, with no repetitions.
-
Usage Example:
var randomSubset = mySerializedDictionary.GetRandomSubset(3); foreach (var kvp in randomSubset) { Console.WriteLine($"{kvp.Key}: {kvp.Value}"); }
-
Exceptions:
- Throws
ArgumentNullExceptionif the dictionary isnull. - Throws
ArgumentOutOfRangeExceptionifcountis negative. - Throws
ArgumentExceptionifcountis greater than the dictionary size.
- Throws
GetRandomKeys(int count)
-
Description: Returns a random subset of keys from the dictionary, with no repetitions.
-
Usage Example:
var randomKeys = mySerializedDictionary.GetRandomKeys(2); foreach (var key in randomKeys) { Console.WriteLine($"Key: {key}"); }
-
Exceptions:
- Throws
ArgumentNullExceptionif the dictionary isnull. - Throws
ArgumentOutOfRangeExceptionifcountis negative. - Throws
ArgumentExceptionifcountis greater than the dictionary size.
- Throws
GetRandomValues(int count)
-
Description: Returns a random subset of values from the dictionary, with no repetitions.
-
Usage Example:
var randomValues = mySerializedDictionary.GetRandomValues(2); foreach (var value in randomValues) { Console.WriteLine($"Value: {value}"); }
-
Exceptions:
- Throws
ArgumentNullExceptionif the dictionary isnull. - Throws
ArgumentOutOfRangeExceptionifcountis negative. - Throws
ArgumentExceptionifcountis greater than the dictionary size.
- Throws
GetRandomKey()
-
Description: Returns a single random key from the dictionary.
-
Usage Example:
var randomKey = mySerializedDictionary.GetRandomKey(); Console.WriteLine($"Random Key: {randomKey}");
-
Exceptions:
- Throws
InvalidOperationExceptionif the dictionary is empty. - Throws
ArgumentNullExceptionif the dictionary isnull.
- Throws
GetRandomValue()
-
Description: Returns a single random value from the dictionary.
-
Usage Example:
var randomValue = mySerializedDictionary.GetRandomValue(); Console.WriteLine($"Random Value: {randomValue}");
-
Exceptions:
- Throws
InvalidOperationExceptionif the dictionary is empty. - Throws
ArgumentNullExceptionif the dictionary isnull.
- Throws
Release 1.1.12
Added IReadOnlyArray2D<T> Interface to Array2D<T>
This release introduces the IReadOnlyArray2D<T> interface to the Array2D<T> class, providing a standardized, read-only way to access elements in a two-dimensional array. This interface supports the IEnumerable<T> interface, enabling iteration over array elements in a row-major order. It also includes properties for retrieving array metadata, such as dimensions and column width, without modifying the underlying data.
1.1.11
1.1.9
Added IEnumerable Support to Array2D
This release introduces IEnumerable support for the Array2D class, allowing for easy iteration over elements in a two-dimensional array. With this enhancement, users can now leverage LINQ operations and other collection-based functionality directly on Array2D objects.
1.1.8
1.1.7
Release 1.1.6
Release 1.1.6 - Serialized Collections + Inspector Extensions
New Features
-
Array2D: Added support for serializing and editing 2D arrays directly in the Unity inspector. This feature simplifies working with grid-based data, such as maps or tables.
-
SerializedDictionary<TKey, TValue>: Introduced the ability to serialize dictionaries in the Unity inspector. You can now easily manage key-value pairs without needing custom solutions.
Inspector Extensions
-
[Radio]: A new attribute that allows you to mark a group of
boolfields in the inspector so that only one can be selected at a time. Perfect for scenarios where you need radio button-like functionality. -
[FolderPath]: Added a button in the inspector for easily selecting folder paths. This tool speeds up the configuration of file paths or data loading.
-
[ExpandRef]: Allows you to expand and preview referenced objects directly in the inspector, making it easier to manage complex data structures.
Fixes
- General performance improvements and code optimizations.
- Fixed several minor issues related to the serialization of custom structures.