Decoupled Event System for Unity
Add the WGEventSystem.cs to any gameobject and use the functions below to trigger events, listen for events or to stop listening to events
WGEventSystem.Instance.TriggerEvent(BaseEvent);
WGEventSystem.Instance.RegisterListener(Callback);
WGEventSystem.Instance.UnregisterListener(Callback);