public void OnDrag(Vector3 position)
        {
            DragStateData buttonStateData = new DragStateData();

            buttonStateData.position          = position;
            buttonStateData.dragState         = DragState.OnUpdate;
            buttonStateData.hashObjectDragged = m_DraggablePad.gameObject.GetHashCode();

            Dispatcher.Dispatch(SetDragStateAction.From(buttonStateData));

            m_AnchorSelection.OnDragPad(buttonStateData);
        }
        public void OnDragPad(DragStateData dragState)
        {
            if (m_PreviousPadPosition.HasValue && (dragState.position - m_PreviousPadPosition.Value).magnitude < m_Tolerance && !m_VREnableGetter())
            {
                return;
            }

            m_PreviousPadPosition = dragState.position;
            var position = dragState.position;

            position.y += m_Offset;

            OnPick(position, OnPickDragAsyncCallback);
        }