Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

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

Discussion in 'Assets and Asset Store' started by Quadropups, Mar 25, 2022.

  1. Quadropups

    Quadropups

    Joined:
    May 23, 2017
    Posts:
    18
    Screenshot_17.png

    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.

    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
     
    Last edited: Apr 6, 2022
  2. Quadropups

    Quadropups

    Joined:
    May 23, 2017
    Posts:
    18
    ToDo:

    1. Improve PropertyDrawer for better optimization
    2. Provide more examples (I'm open to suggestions)
    3. Complete documentation
     
    Last edited: Apr 25, 2022
    assertor likes this.
  3. Ruchir

    Ruchir

    Joined:
    May 26, 2015
    Posts:
    927
    Have you measured the performance overhead this system has over other event systems?(like Unity Events, C# events)
    Also, what about the GC allocation.
     
    one_one likes this.