Summary An Event System is a fast way to communicate GameObject with the advantage that they don't need to know each other.
Usage
- Put the desire event at eEvent.
public enum eEvent {
RandomEventName,
MAX
}
Enums are used to avoid errors, and helps searching event triggers and listeners.
- Create the function that listens to the Event Manager
void Foo(object[] args)
{
}
The array is for event communication, as bonus it's easier to identify an event function.
2.1) Listen to the Event Manager
void OnEnable()
{
EventManager.Listen(eEvent.RandomEventName,OnFoo);
}
2.2) Important When you register a listener you need to unregister it.
void OnDisable()
{
EventManager.Remove(eEvent.RandomEventName,OnFoo);
}
A good practice is, if you register at OnEnable unregister at OnDisable. It works the same way with Awake and OnDestroy.
You can register a listener any place but always unregister it.
- Trigger the event with
void OnDisable()
{
EventManager.Trigger(eEvent.RandomEventName); //Trigger the listeners with null parameters.
EventManager.Trigger(eEvent.RandomEventName, withParameters);
}
Trigger with the parameter enum, and all the parameters that we want to send.