Changelog
All notable changes to this package will be documented in this file.
[1.7.5] - 2022-01-25
Fixed
- Fix nullable enum types for Unity
2021.2and up.
[1.7.2] - 2022-01-17
Fixed
- Fix
BadImageFormatExceptionwhen running Unity.Properties.CodeGen.
[1.7.1] - 2021-08-05
Fixed
TypeConversionprimitive converters now perform a direct C# cast instead of clamping.
[1.7.0] - 2021-02-26
Added
- Added overloads to
TypeConversion.ConvertandTypeConversion.TryConvertto pass the source as arefto avoid creating copies during conversion.
[1.6.0] - 2020-10-07
Changed
- Updated minimum Unity version to
2020.1. - Update
com.unity.test-framework.performanceto version2.3.1-preview.
Fixed
- CodeGen: Fixed cross assembly base type references.
[1.5.0] - 2020-08-21
Changed
- Enabled minimal support for
NET_DOTS.Property,PropertyBagandPropertyContainer.Visitare now available.
[1.4.3] - 2020-08-04
Fixed
- Fixed error logged during visitation when nested visitation contains the same property path.
- CodeGen: Fixed exception thrown when trying to generate property bags for anonymous types.
[1.4.2] - 2020-08-04
Fixed
- Fixed issues where a test would fail when using IL2CPP.
Added
- Added a built-in property bag for
System.Version.
[1.4.1] - 2020-07-31
Fixed
- Fixed issues where removing an element from an array would not preserve subsequent elements.
[1.4.0] - 2020-07-30
Fixed
- Fixed error logged during visitation when nested visitation contains the same property path.
- Fixed
PropertyVisitor.VisitCollectionnot being invoked fornullcollection types.
Changed
- Update
com.unity.nuget.mono-cecilto version0.1.6-preview.2.
[1.3.1] - 2020-06-11
Fixed
TypeUtility.GetRootTypewill now returnnullwhen provided an interface type.- Fixed exception thrown when trying to generate property bags for multidimensional array types. Multidimensional arrays are not supported.
- CodeGen: Fixed exception thrown when trying to generate property bags for multidimensional array types. Multidimensional arrays are not supported.
- CodeGen: Fixed cross assembly type references for C# properties.
- CodeGen: Fixed issue when initializing attributes for private members of base types.
[1.3.0] - 2020-05-13
Added
- Added a utility class around
System.Type.
Fixed
PropertyContainer.SetValuewill not throwAccessViolationExceptionwhen trying to set aread-onlyproperty.- CodeGen: Fixed invalid IL produced by open generic root types.
[1.2.0] - 2020-04-03
Fixed
- CodeGen: Fixed arrays of arrays.
- CodeGen: Fixed types with generic bases.
Added
- CodeGen: Add
GeneratePropertyBagsInEditorAttributewhich can be used to enable Editor time codegen per assembly.
[1.1.1] - 2020-03-20
Fixed
- Fixed an issue where the
PropertyVisitor.IsExcludedoverride was only being called when adapters were registered.
[1.1.0] - 2020-03-11
Fixed
- Fixed list elements incorrectly being considered as
readonlyif the list wasreadonly. - Fixed codegen not correctly registering property bags for array types.
[1.0.0] - 2020-03-02
Changed
- Breaking change Complete API overhaul, see the package documentation for details.
[0.10.3] - 2019-11-08
Fixed
- AOT Fix: Allows for registering container types with the internal generic virtual calls in Properties
[0.10.2] - 2019-11-07
Changed
- Missing type identifier key meta data in
PropertyContainer.Constructis no longer considered an error, but is still reported in result logs.
Fixed
- Calling
PropertyContainer.Transferwhen destination container have properties without setters will no longer throws.
[0.10.1] - 2019-10-29
Added
- Added a helper class to drive code generation in order to support AOT platforms.
[0.10.0] - 2019-10-25
Changed
- Breaking change
PropertyContainer.ConstructandPropertyContainer.Transferwill now return a disposableVisitResultcontaining logs, errors and exceptions that occurred during visitation.
[0.9.2] - 2019-10-21
Added
- Added support for renamed fields using
UnityEngine.Serialization.FormerlySerializedAsAttributein the transfer visitor.
[0.9.1] - 2019-10-18
Added
- Added
PropertyContainer.ConstructAPI call. This method can be used to initialize a tree using the default constructor for any uninitialized types. - Added support for instantiating
UnityEngine.ScriptableObjectderived types using theTypeConstructionutility.
Changed
PropertyContainer.Transferwill now visit the source instead of the destination when transfering.
[0.9.0] - 2019-10-06
Added
- Added
TypeConstruction.TryConstruct[...]variants for instantiating types without throwing exceptions. - Support for property drawers.
Fixed
- Attributes on a collection will now be correctly propagated to its elements.
Changed
- Connectors are now registered on the
BaseField<T>directly instead of the explicit types (i.e.IntegerField), which will help with user defined types. - Added
PropertyContainer.Visitoverload withref TVisitor. - Breaking change Changed all
IPropertyBag{T}.Acceptmethods to pass theTVisitorby ref.
[0.8.1] - 2019-09-25
Fixed
- Public fields and properties from base class will now again be reflected correctly.
[0.8.0] - 2019-09-24
Added
- Added a
TypeConstructionutility to allow the creation of new instances. - Minimal unity version has been updated to 2019.3.
- Added
PropertyElementto help with generic, property-backed UI inspectors
Fixed
- Fixed all
PropertyContainer.Try[...]methods to not throw exceptions when visiting nested types. - Fixed property bag reflection duplicates when base class contains an internal field or property.
[0.7.2] - 2019-09-12
Changed
- Exposed a default way to manually visit collection items, through
VisitCollectionElementCallback<TContainer>
Added
- Added
PropertyContainer.TryGetValueAtPathandPropertyContainer.TrySetValueAtPath, which will try to set a value for a givenPropertyPath. - Added
PropertyContainer.TryGetCountAtPathandPropertyContainer.TrySetCountAtPath, which will try to set the count of a collection for a givenPropertyPath. - Added
PropertyContainer.VisitAtPathandPropertyContainer.TryVisitAtPath, which will do a partial visitation for a givenPropertyPath.
[0.7.1] - 2019-08-29
Fixed
- Narrowing conversions between supported enum types will not throw an
InvalidCastExceptionanymore.
[0.7.0] - 2019-08-23
Fixed
- Conversion to all supported underlying type of enums should now be supported.
- Type conversion should now work on derived types.
Added
- Added
PropertyContainer.GetValueAtPathandPropertyContainer.SetValueAtPath, which will set a value for a givenPropertyPath. - Added construction of a
PropertyPathfrom a string (i.e.Path.To.The.List[1].Value).
Changed
- Breaking change
IPropertyGetterandICollectionPropertyGetterare now passed by ref during visitation.
[0.6.4] - 2019-08-15
Fixed
- Fixed property bag reflection for base class with private properties.
- Disabled generation of properties for reflected pointer fields in order to avoid casting errors.
[0.6.3] - 2019-08-06
Fixed
- Fixed
System.GuidpropertiesIsContainervalue to returnfalse. - Fixed property bag reflection for base class with private fields.
- Fixed property bag reflection for private properties.
[0.6.2] - 2019-07-29
Fixed
- Fixed property bag resolution for boxed and interface types.
[0.6.1] - 2019-07-25
Fixed
- Fixed the reflection property generator to correclty handle
IList<T>,List<T>andT[]collection types. - Fixed
ArgumentNullExceptionwhen visiting a null container.
[0.6.0] - 2019-07-19
Added
- Added
[Property]attribute which can be used on fields or C# properties. The attribute will force the reflection generator to include the member.
Changed
PropertyBagResolver.RegisterProviderhas been removed and replaced with access to a staticReflectedPropertyBagProvider.Unity.Properties.Reflectionassembly has been removed and merged withUnity.Properties.
Fixed
TypeConverterno longer warns if the source and destination types are the same.- TypeConversion of enum types will now convert based on the value and not the index.
- PropertyContainer.Transfer now ensures destination type is a reference type when not passed by ref.
- Fix generated properties for
List<string>incorrectly treating strings as container types. UnmanagedPropertycan now be generated forchartypes during reflection.
[0.5.0] - 2019-04-29
Changed
- Complete refactor of the Properties package.