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); } }