This is my event manager:
public class Event_Mgr
{
public delegate void Power_State();
public static event Power_State On_Power_Enabled;
public static void Power_Enabling()
{
if (On_Power_Enabled != null) On_Power_Enabled();
}
}
In script “Systems_Controller” at start method i write: Event_Mgr.Power_Enabling(); this fire event.
In script “Movement” that subscribed to event i write:
void OnEnable()
{
Event_Mgr.On_Power_Enabled += Enable_Movement;
}
void OnDisable()
{
Event_Mgr.On_Power_Enabled -= Enable_Movement;
}
I have for example 2 instances of gameobject and each of them contain both scripts: “Systems_Controller” and “Movement”. So as result i see that event fire twice for each instance.
Question how make event to be fired only for same instance, not to all instances that subscribed to that event. Maybe event not best option for this? I have player wehicle and enemy wehicle so both need to enable power before they can move. But when i enable power on player, event triggered for both player and enemy. Then when enemy enable power event triggered also for both player and enemy.