Ejemplo n.º 1
0
 public static void Invoke(EventType eventTypeType, object sender = null, EventArgs e = null)
 {
     if (EventDictionary.TryGetValue(eventTypeType, out var thisEvent))
     {
         thisEvent.Invoke(sender, e);
     }
 }
Ejemplo n.º 2
0
    // Starts listening to this action. Will override any previous action, unsubscribing it in the process
    public void StartListening(Action <object, EventArgs> action, EventType eventType)
    {
        eventListener?.Unsubscribe(currentEventType); // Unsubscribe if we already have an event

        eventListener    = action;
        currentEventType = eventType;

        name = $"__eventListener ({eventType.ToString()})"; // Set gameObject.name

        eventListener.Subscribe(eventType);
    }
Ejemplo n.º 3
0
 public static void Subscribe(this Action <object, EventArgs> listener, EventType eventTypeType)
 {
     if (EventDictionary.TryGetValue(eventTypeType, out var thisEvent))
     {
         thisEvent += listener;
         EventDictionary[eventTypeType] = thisEvent;
     }
     else
     {
         thisEvent += listener;
         EventDictionary.Add(eventTypeType, thisEvent);
     }
 }
Ejemplo n.º 4
0
 public static void Unsubscribe(this Action <object, EventArgs> listener, EventType eventTypeType)
 {
     if (EventDictionary.TryGetValue(eventTypeType, out var thisEvent))
     {
         thisEvent -= listener;
         if (thisEvent == null)
         {
             EventDictionary.Remove(eventTypeType);
         }
         else
         {
             EventDictionary[eventTypeType] = thisEvent;
         }
     }
 }
Ejemplo n.º 5
0
 private void Awake()
 {
     rb        = GetComponent <Rigidbody2D>();
     eventType = PlayerOne ? Constants.EventType.Player1Damage : Constants.EventType.Player2Damage;
     Stats     = GetComponent <PlayerStats>();
 }
Ejemplo n.º 6
0
    // Creates an object subscribed to an event. This subscription automatically handled when parent is enabled/disabled/destroyed.
    public static Listener CreateListener(Transform parent, Action <object, EventArgs> action, EventType eventType)
    {
        GameObject go = new GameObject("__eventListener", typeof(Listener));

        go.transform.parent = parent;

        Listener listener = go.GetComponent <Listener>();

        listener.StartListening(action, eventType);

        return(listener);
    }