Event Manager – Typed C# Events & One-Line API

📖 Documentation | 🛠️Support


Reduce direct references between Unity systems with a small, typed C# event API.



⚡ Event Manager helps gameplay systems communicate without making every sender depend on every receiver. Define an event payload, trigger it in one line, and subscribe in one line. It is designed for programmers who want a focused publish-subscribe layer without adopting a larger framework.



Core workflow


1. Define the data your event carries.


Use Unity objects, custom classes, structs, enums and other C# types in your event payloads.


2. Trigger the event.


new OnEnemyDead { enemy = this }.Trigger();


3. Subscribe where the response belongs.


EventManager.Subscribe(OnEnemyDead, HandleEnemyDeath);



Why use Event Manager?


• Reduce direct dependencies between gameplay systems.


• Keep event payloads strongly typed and easy to inspect in code.


• Add the system to new or existing projects with a small API surface.


• Use the included C# source when your project needs custom behaviour.


• Follow focused documentation and practical examples.



Example


An enemy can announce that it died without directly referencing achievements, audio, UI, quests or analytics. Each interested system subscribes independently and can be changed without modifying the enemy script.



Proven by Unity developers 👥


Event Manager currently holds eight five-star ratings. Reviews repeatedly highlight its simplicity, time saving, clean separation of systems and responsive support.



Compatibility


Tested with Unity 2022.3 LTS and Unity 6. The system is not tied to a render pipeline.