Skip to content

Releases: Real-Serious-Games/Unity-Weld

v0.8.0

19 Dec 06:19
Compare
Choose a tag to compare
v0.8.0 Pre-release
Pre-release

Features

  • Functionality to support dependency injection inside adapters via IWeldContainerIoC (thanks @MorganMoon).
  • Unity Weld components are now included in the Unity add component menu (thanks @UlyssesWu).
  • Build supports .NET Standard 2.0 in addition to .NET Framework 3.5.

Fixes

  • Fix issue where we were sometimes binding to the wrong UnityEvent in the case where a component has multiple bindable events.
  • Fix issue where binding to an item using the type of its base class would sometimes cause an exception if the type doesn't implement IConvertable (#15).
  • Nuget packages now are now built in Release mode instead of Debug.

Breaking changes

  • The functionality for automatically converting between similar types without an adapter using Convert.ChangeType first introduced in v0.7.2 has been removed due to the issues this caused.

v0.7.2

28 Feb 04:17
4f06bca
Compare
Choose a tag to compare
v0.7.2 Pre-release
Pre-release

Features

  • Types that can implicitly cast to each other can be bound to without an adapter (thanks @MorganMoon).
  • Added StringEmptyToBoolAdapter, which converts a string to a bool which is false if the string is null or empty.

Changes

  • Changed type of exception thrown when you try to bind to an unknown animator parameter type from ArgumentOutOfRangeException to IndexOutOfRangeException.

Fixes

  • Various minor performance improvements (removed some unnecessary allocations and optimised Linq to remove some unnecessary enumerations)
  • Fixed possible NullReferenceException in EventBinding.

v0.7.1

30 Jan 05:16
Compare
Choose a tag to compare
v0.7.1 Pre-release
Pre-release

Fixes

  • Fixed an order of initialisation issue with DropdownBinding where the selected option was being initialised before the list of available options.

Changes

  • Marked DropdownAdapter as obsolete since the same functionality can be achieved with DropdownBinding. This should be removed in the next release.

v0.7.0

17 Jan 01:10
Compare
Choose a tag to compare
v0.7.0 Pre-release
Pre-release

Features

  • Created AnimatorParameterBinding that lets you bind a property on a view-model to a parameter of a Unity animator (thanks @MorganMoon).
  • ToggleActiveBinding now supports adapter options.
  • The editor prevents you from modifying bindings while the game is playing, which avoids some previously confusing and undocumented behaviour (thanks @MorganMoon).
  • Added new adapters
    • string 🡒 DateTime with culture in adapter options: StringCultureToDateTimeAdapter
    • DateTime 🡒 float: DateTimeToFloatAdapter
    • float 🡒 DateTime: FloatToDateTimeAdapter
    • UnityEngine.Color 🡒 UnityEngine.ColorBlock with color to override in adapter options: ColorToColorBlockAdapter

Breaking changes

  • Previously publicly accessible fields in AbstractTemplateSelector must now be accessed via properties.

Bug fixes

  • Fixed issue where some fields on OneWayPropertyBinding, TwoWayPropertyBinding and EventBinding weren't being detected as modified

v0.6.1

19 Dec 03:36
Compare
Choose a tag to compare
v0.6.1 Pre-release
Pre-release

Features

  • ToggleActiveBinding now supports adapters (thanks @MorganMoon)
  • ObservableList now implements ITypedList which makes it easy to inspect what type of items are in the list
  • Filtered properties without public get or set methods so that they are not shown in inspector dropdowns (previously they would be shown but would throw an error when you start the game with anything bound to them)

Breaking changes

  • All previously publicly acessible fields on binding MonoBehaviours are now private. They can still be accessed but only via properties. Ones with "UI" in their name have been renamed as well to use the word "View", for more consistent terminology across the rest of the project. This is also more consistent with the fact that the library is not limited to use with UnityUI and can be used for any kind of general data-binding.

Fixes

  • Fixed issue where binding to certain UnityEngine components wouldn't work (#6 - kudos to @MorganMoon)
  • Fixed issue where ToggleActiveBinding editor didn't use the correct type when using an adapter (#7 - thanks again @MorganMoon)

v0.6.0

26 Jul 07:06
Compare
Choose a tag to compare
v0.6.0 Pre-release
Pre-release

Features

  • Added BoolInversionAdapter that inverts the value of a bool.
  • Added IntToStringAdapter and StringToIntAdapter for converting between ints and strings.
  • Added BoolToColorBlockAdapter for changing the color of a button based on the value of a bool.
  • Gave all components and ScriptableObjects the correct help URL.
  • Improved internal argument checking.

Breaking changes

  • Removed ColorBlockAdapter MonoBehaviour component - this is replaced by the new ColorBlockAdapter that uses the new adapters system.
  • Changed type of the exception thrown when the specified adapter type does not implement IAdapter from NoSuchAdapterException to InvalidAdapterException.

Fixes

  • Fixed issue where putting an EventBinding or OneWayPropertyBinding on an object with missing components would throw NullReferenceExceptions and break the editor.

v0.5.0

23 Jun 06:46
Compare
Choose a tag to compare
v0.5.0 Pre-release
Pre-release

0.5.0

Features

  • Added ToggleActiveBinding that allows an object or collection of objects to be turned on or off according to the value of a boolean property, similar to ng-show from AngularJS.
  • Added an adapter that converts from System.Boolean to System.String
  • Added an adapter that converts from System.Boolean to UnityEngine.Color
  • Implemented custom exception types for errors rather than relying on ApplicationException
    • AmbiguousTypeException
    • ComponentNotFoundException
    • InvalidAdapterException
    • InvalidEndPointException
    • InvalidEventException
    • InvalidTypeException
    • MemberNotFoundException
    • NoSuchAdapterException
    • PropertyNullException
    • TemplateNotFoundException
    • ViewModelNotFoundException
  • Improved some exception messages.

Fixes

  • Fixed implementation of IDisposable to avoid potential issues.

v0.4.2

20 Jun 05:00
Compare
Choose a tag to compare
v0.4.2 Pre-release
Pre-release

Fixes

  • Fixed another issue where MemberBindings to a property from an inherited interface would be set up with the wrong view model binding
  • Fixed issue where EventBindings could not be bound to a method from an inherited interface.

v0.4.1

19 Jun 23:46
Compare
Choose a tag to compare
v0.4.1 Pre-release
Pre-release

Fixes

  • Fixed issue where properties inherited from a parent interface could not be bound to and wouldn't show up in selection dropdowns.

v0.4.0

16 Jun 05:27
Compare
Choose a tag to compare
v0.4.0 Pre-release
Pre-release

Features

  • SubViewModelBinding now has an editor.
  • Editors for all Unity Weld components now show properties as bold when their value differs from that of their prefab, just like the inspectors for built-in Unity components.
  • Added ability to select a "none" option in the two way property binding exception property.
  • Made collection bindings show child objects in the order they appear in the collection.
  • Hid events marked with ObsoleteAttribute in inspectors for EventBinding and TwoWayPropertyBinding.

Fixes

  • Fixed issue where using templates would cause double binding for event bindings #4