[RELEASED] Extended Events - A Free and Powerful Event System

Extended Events is an event system that allows you to setup and configure persistent event callbacks via the Inspector. Based on UnityEvents it has fewer restrictions and allows you to serialize almost any method or data type.

7992549--1027098--Screenshot_1.png

Key Features

1. Methods
ExtendedEvents supports any method or operator with up to 8 parameters (up to 7 for instance methods). Also supports instance methods defined on structs.
ExtendedEvents allows methods with any return type and allows the returned value to be used as a parameter in other methods.

2. Parameter Types and serialization
ExtendedEvents support methods that take any type as the parameters. It also allow to natively serialize following parameters:
bool, int, float, string, types derived UnityEngine.Object and interfaces defined on those types, enums, uint, LayerMask, Vector2, Vector3, Vector4, Color, Quaternion, character, Type, Rect, AnimationCurve, Gradient.
ExtendedEvents also allows users to create their own serializers and PropertyDrawers to serialize any type (such as custom structs or classes).

3. Multiple callback types
ExtendedEvents allows to create multiple callback types in a single event object. (for example if you want to have both “OnTriggerEnter” and “OnTriggerExit” callbacks on the same event object).
4. Invoking with a Custom argument
ExtendedEvents allows methods to be invoked with a custom parameter (such as Collision for OnCollisionEnter/Exit or Collider for OnTriggerEnter/Exit messages).

5. Timeline, coroutines and iteration
ExtendedEvents allows methods to be invoked with a delay and it also can start/stop a coroutine without using a separate method
ExtendedEvents also allows user to invoke an event on an enumerator (including lists and arrays).

6. Custom ParameterDrawers
ExtendedEvents allows user to define custom parameter drawers for any parameter on any method. PropertyDrawers can also be used for method parameters.

Download it for FREE
Asset store
itch.io
Documentation
Demo

ToDo:

  1. Improve PropertyDrawer for better optimization
  2. Provide more examples (I’m open to suggestions)
  3. Complete documentation
1 Like

Have you measured the performance overhead this system has over other event systems?(like Unity Events, C# events)
Also, what about the GC allocation.

1 Like