protected virtual void OnDisable()
{
eventDispatcher.RemoveListener <DragCompletedEvent>(OnDragCompletedEvent);
eventDispatcher.RemoveListener <DragEntered.DragEnteredEvent>(OnDragEnteredEvent);
eventDispatcher.RemoveListener <DragExited.DragExitedEvent>(OnDragExitedEvent);
if (draggableObject != null)
{
draggableObject.UnregisterHandler(this);
}
eventDispatcher = null;
}