When updating plugins, you must delete any previous version from your project first. This is mandatory since Unity's package importer system doesn't delete or rename existing files so any old scripts that aren't directly overwritten will cause compile errors that prevent anything from working.
- Changed the type picker menu to use
FullNameso that primitive aliases like
floatcan be used instead of needing their full names (
PersistentCallDrawer.GetSupportedTypesto ignore dynamic assemblies instead of throwing an exception.
- Fixed build error in
- Added support for getting and setting fields directly.
- Replaced the method selection menu with an
AdvancedDropdownwhich has a nicer layout and inbuilt search bar.
- The old context menu style can be reactivated by selecting "Display Options -> Context Menu Style".
Operatorsfor simple math.
ReflectionCachefor more efficient initialization of events that reuse the same types for static member access.
- Removed the
UltEventsUtils.InvokeXextension methods since you can just use
- Improved the UltEvent Inspector to highlight the event header in red if any of its calls are invalid so you can find problems easier if they're collapsed.
- Improved the "Attempted to Invoke a PersistentCall which couldn't find it's method" warning to include the name of the method it was looking for and mention Unity's Script Stripping in Runtime Builds.
- Increased the minimum supported Unity version to 2021.3.
- Moved from Assets/Plugins to the Packages folder so UltEvents can be referenced by other Packages.
- Renamed the Assembly from
Kybernetik.UltEventsto match package assembly naming guidelines.
- If you have any Assembly Definitions which reference a previous version of
UltEvents, make sure they have "Use GUIDs" enabled before upgrading. Otherwise, you will need to re-assign those references.
- Added a separate
Kybernetik.UltEvents.Editorassembly for Editor-Only stuff.
- Renamed the Assembly from
- Updated code to use newer C# features: expression-bodied members, null-coalescing operators, out parameter declarations, range operators, string interpolation.
Serializationsystem to better handle
MethodSelectionMenuheadings to respect
- Fixed call reordering to not break linked return values.
- Fixed constructors to work properly.
- Increased the minimum supported Unity version to 2018.4.
- Improved the
SetValueto directly access
FieldTypeto be private and added
GetFieldElementTypemethods so that it can support
[SerializeReference]fields where inheritance might prevent the
FieldInfofrom being accessible just based on the field type.
- Added support for inheritance in
CollectionPropertyAccessorand added methods for accessing the collection itself rather than the target item.
- Fixed errors when trying to get or set the value of a property with a null object somewhere in its chain.
Serialization.GetValueto work properly when the property has multiple different values.
Serialization.PropertyAccessor.ResetValueto run the constructor of the field's current type so that it can reset
[SerializeReference]fields to the defaults of the current type instead of null.
UltEventBase.DynamicInvokewhich takes an
- Added a display option for "Use Indentation" to optionally fill the full Inspector width instead of indenting properly.
- Flipped the
Settoggles for properties.
Getis now shown when the getter is selected rather than as a button to change to the getter.
- Fixed exception caused by the UI Elements system when resizing arrays containing UltEvents.
- Fixed a few GUI spacing issues in Unity 2019.3+.
- Fixed the
Click to add a listenerlabel to not disappear when opening the context menu.
- Moved everything out of the precompiled DLL to make it easier to access and modify the source code.
Warning: when upgrading from an earlier version you must delete the old version before importing the new one. This will also cause all of the Premade Event Scripts in your project to go missing so you will need to set them all up again. This is an unfortunate side effect of the way Unity handles references to scripts inside a DLL compared to regular script files.
- Replaced PDF user manual with a website hosted at kybernetik.com.au/ultevents.
- Added support for constructors.
- Added interfaces corresponding to all
UltEventtypes so that the ability to add and remove listeners can be exposed without exposing the ability to invoke, clear, or access other members of the event.
- Fixed cached
PersistentArgumentvalues to be cleared properly when the user modifies the argument in the Inspector.
- Removed the Parameter Constructors sub-menu because it isn't particularly useful now that actual constructors are supported.
- Fixed an issue where persistent arguments using parameters or returned values would cache the first value they were given and keep using that.
- Changed structure of source code project back to having the Runtime project link all the files in the Editor project. Shared Projects are more hassle than they're worth.
- Fixed invocation to not allocate garbage every time for value type parameters.
- Changed structure of source code project to use a Shared Project instead of having the Runtime project link all the files in the Editor project.
- Initial release.