public int Subscribe(GameObject target, int eventName, Action <object> handler)
    {
        RegisterEvent(target, eventName, handler);
        KObject orCreateObject = KObjectManager.Instance.GetOrCreateObject(target);

        return(orCreateObject.GetEventSystem().Subscribe(eventName, handler));
    }
    public static void Trigger(this GameObject go, int hash, object data = null)
    {
        KObject kObject = KObjectManager.Instance.Get(go);

        if (kObject != null && kObject.hasEventSystem)
        {
            kObject.GetEventSystem().Trigger(go, hash, data);
        }
    }
 public void Unsubscribe(GameObject target, int eventName, Action <object> handler)
 {
     UnregisterEvent(target, eventName, handler);
     if (!((UnityEngine.Object)target == (UnityEngine.Object)null))
     {
         KObject orCreateObject = KObjectManager.Instance.GetOrCreateObject(target);
         orCreateObject.GetEventSystem().Unsubscribe(eventName, handler);
     }
 }