void Update()
 {
     if (MouseUtil.IsClicked(this.gameObject))
     {
         From           = MouseUtil.GetMouseWorldPosition();
         IsBeingDragged = true;
         OnClick.Invoke(From);
     }
     if (!MouseUtil.IsClickReleased() && IsBeingDragged)
     {
         To = MouseUtil.GetMouseWorldPosition();
         OnDrag.Invoke(From, To);
     }
     if (MouseUtil.IsClickReleased() && IsBeingDragged)
     {
         To             = MouseUtil.GetMouseWorldPosition();
         IsBeingDragged = false;
         OnRelease.Invoke(From, To);
     }
 }