Send custom classes as information with the event by simply having them inherit from 'EventData'.
Listen for an event by calling:
EventSystem.EventConnect(this.gameObject, "HelloEvent", SayHello);
Send an event by calling:
EventSystem.EventSend(this.gameObject, "HelloEvent");
A custom property viewer for the 'Events' class that makes managing which events are dispatched simple.
Hashed string event names are used for fast performance.
Event listeners are cleaned up automatically when an object is destroyed. There is no need to allocate using anything other than 'new' and no fear of memory leaks.