private static void Trigger <TArgs>(EventType eventType, EventTarget target, TArgs args)
            {
                if ((eventType & EventType.Global) == EventType.Global)
                {
                    TargetEvent.Trigger(target.name, args);
                }

                if ((eventType & EventType.Target) == EventType.Target)
                {
                    TargetEvent.Trigger(target, args);
                }

                List <Transform> _objs = new List <Transform>();

                if ((eventType & EventType.TargetAndParent) == EventType.TargetAndParent)
                {
                    ((GameObject)target.target).GetParents(_objs);

                    _trigger(target, args, _objs);
                }

                if ((eventType & EventType.TargetAndOffspring) == EventType.TargetAndOffspring)
                {
                    ((GameObject)target.target).GetOffspring(_objs);

                    _trigger(target, args, _objs);
                }
                else if ((eventType & EventType.TargetAndChild) == EventType.TargetAndChild)
                {
                    ((GameObject)target.target).GetOffspring(_objs, 1);

                    _trigger(target, args, _objs);
                }
            }
 public static void Trigger <TArgs>(EventType eventType, string name, TArgs args)
 {
     Trigger(eventType, new EventTarget(name, null), args);
 }
 public static void Trigger(EventType eventType, string name)
 {
     Trigger(eventType, new EventTarget(name, null), new EmptyEventArgs());
 }
 public static void Trigger(EventType eventType, string name, GameObject target)
 {
     Trigger(eventType, new EventTarget(name, target), new EmptyEventArgs());
 }
 public static void Trigger <TArgs>(EventType eventType, string name, GameObject target, TArgs args)
 {
     Trigger(eventType, new EventTarget(name, target), args);
 }