Global Event Handler
Global Event System for Blueprints and C++ (Game Instance Subsystem Based). Send Events (and Payloads) from one UObject to many other UObjects anonymously. No need for casting or even knowing if the receivers exist.
Design your code using a solid pattern, decouple it and remove all the unnecessary dependencies. Implementation of the Event Aggregator Pattern (Observer Pattern), inspired in WPF frameworks like Prism.
Design your project like a pro
By decoupling your project, and eliminate unnecessary dependencies, you make your projects more modular and testable.
Have you ever tried to migrate a Blueprint and found out that it had tons of dependencies? That's because castings creates dependencies to the casted classes.
Game Instance Subsystem Based
No need to create components or interfaces for using the Global Event Pattern. Just Call and Bind, exactly how the UE4's Event Dispatchers work, but globally ;)
Level Streaming Supported
If you ever tried to communicate to an Actor that lives in a different sublevel, then you know how annoying that can be! This plugin will help with that.
Payloads supported
Send any UObject Payload containing any kind of data.
Technical Details
Features:
- Call global events by Class, Name or GameplayTag. Payloads and metadata supported.
- Bind and receive global messages. Unbind (and Unbind all) is also supported.
- Methods for debugging and managing the global events are also included.
- Send Events from one UObject to another (Actors, Widgets, Tasks, etc).
- Send Events from one Sublevel/Persistent level to another.
- No need to create Components or Interfaces.
- Based on Game Instance Subsystem. So no need to initialize anything.
- The system will automatically "clean" itself when Actors are destroyed or when the level is destroyed.
Code Modules:
- TMWEventAggregator [Runtime]
Number of C++ Classes: 2
Network Replicated: Not by default, but supported
Supported Development Platforms: Windows (Should work on any other dev platform*)
Supported Target Build Platforms: Windows, Android (Should work on every other platform*)
* Any other platform require compilation.