Heroic Engine
  • Welcome
  • Getting Started
    • Quickstart
    • Example Games
      • Tic Tac Toe
      • Turn based duel
  • Basics
    • Injection Manager
    • Engine Systems
      • Core Systems
        • Events Manager
        • Input Manager
        • Localization Manager
          • LangText component
        • Music Player
        • Sounds Manager
        • Time Manager
        • Scenes Loader
        • Day Time Controller
        • Weather Controller
      • Gameplay Systems
        • Currencies Manager
        • Player Progression Manager
        • Quest Manager
        • Random Events Manager
        • Hittables Manager
        • Dungeon Generator
      • UI Systems
        • UI Controller
        • Countdown Controller
    • Editor Tools
      • Clear Saves
      • Mobile Build Optimizer
      • Create System
      • Icon from Prefab Generator
    • Engine Utilities
      • PoolSystem
      • DataSaver
      • ComponentExtensions
      • MaterialExtensions
      • SpriteUtils
      • SlowUpdate
      • StringUtils
      • TypeUtility
      • MathHelper
      • VectorUtils
      • TransformUtils
      • MeshUtils
    • Useful Components
      • Floating Item
      • Fly Up Text
      • Label Scaler
      • Ragdoll
      • Rotate To Camera
      • Orbital Camera
      • Rotator
      • Texture Mover
      • Hittable
      • Projectile
      • Projectile2D
      • LifetimeObject
      • Spawner
      • Colorized Particles
      • Draggable2D
      • SaveableTransform
    • Useful Attributes
Powered by GitBook
On this page
  1. Basics
  2. Engine Systems
  3. Core Systems

Events Manager

Presented via IEventsManager interface, this system registers, listens and triggers various events.

Events Manager supports events with up to 2 parameters of any type.

To use this system, inject IEventsManager interface into your class, as shown below:

[Inject] private IEventsManager eventsManager;

Available methods


void RegisterListener(string eventType, UnityAction listener)

Registers event listener without parameters.

Examples:

eventsManager.RegisterListener("PlayerDeath", OnPlayerDeath);
eventsManager.RegisterListener("GameWin", () => { Debug.Log("Victory!"); });

void RegisterListener<T>(string eventType, UnityAction<T> listener)

Registers event listener with single parameter of any type.

Examples:

eventsManager.RegisterListener<int>("PlayerDamageGot", OnPlayerDamageGot);
eventsManager.RegisterListener("GameWin", (score) => { Debug.Log($"Victory! Score: {score}"); });

void RegisterListener<T1, T2>(string eventType, UnityAction<T1, T2> listener)

Registers event listener with 2 parameters of any types.

Example:

eventsManager.RegisterListener<int, string>("PlayerDamageGot", (damage, enemyName) => { Debug.Log($"Damage got: {damage} from {enemyName}"); });

void UnregisterListener(string eventType, UnityAction listener)

Unregisters event listener without parameters.

Example:

eventsManager.UnregisterListener("PlayerDeath", OnPlayerDeath);

void UnregisterListener<T>(string eventType, UnityAction<T> listener)

Unregisters event listener with 1 parameter of any type.

Example:

eventsManager.UnregisterListener<int>("PlayerDamageGot", OnPlayerDamageGot);

void UnregisterListener<T1, T2>(string eventType, UnityAction<T1, T2> listener)

Unregisters event listener with 2 parameters of any types.

Example:

eventsManager.UnregisterListener<int, string>("PlayerDamageGot", OnPlayerDamageGot);

void TriggerEvent(string eventType)

Triggers event without parameters.

Example:

eventsManager.TriggerEvent("PlayerDeath");

void TriggerEvent<T>(string eventType, T value)

Triggers event with 1 parameter of any type.

Example:

eventsManager.TriggerEvent<int>("GameWin", score);

void TriggerEvent<T1, T2>(string eventType, T1 value1, T2 value2)

Triggers event with 2 parameters of any types.

Example:

eventsManager.TriggerEvent<int, string>("OnDamageGot", damage, enemyName);

PreviousCore SystemsNextInput Manager

Last updated 5 months ago