public void OnDragPad(DragStateData dragState) { if (m_PreviousPadPosition.HasValue && (dragState.position - m_PreviousPadPosition.Value).magnitude < m_Tolerance) { return; } dragState.position.y += m_Offset; m_PreviousPadPosition = dragState.position; OnPick(dragState.position); if (m_Results == null) { return; } var stateData = m_CachedMeasureToolStateData == null ? MeasureToolStateData.defaultData : m_CachedMeasureToolStateData.Value; var selectedObjects = m_Results.Select(x => x.Item1).Where(x => x.layer != MetadataFilter.k_OtherLayer); stateData.selectedAnchorsContext = selectedObjects.Select(r => r.GetComponent <AnchorSelectionContext>()).Where(g => g != null).ToList(); stateData.toolState = true; Dispatcher.Dispatch(Payload <ActionTypes> .From(ActionTypes.SetMeasureToolOptions, stateData)); }
void OnDragStateChanged(DragStateData dragStateData) { if (m_CachedDragStateData != dragStateData && dragStateData.hashObjectDragged == m_DraggablePad.gameObject.GetHashCode()) { if (m_CachedDragStateData == null || m_CachedDragStateData.Value.position != dragStateData.position) { m_DraggablePad.gameObject.transform.position = dragStateData.position; } if (m_CachedDragStateData == null || m_CachedDragStateData.Value.dragState != dragStateData.dragState) { switch (dragStateData.dragState) { case DragState.OnStart: m_Line.material = m_DotedLineMaterial; break; case DragState.OnEnd: m_Line.material = m_PlainLineMaterial; break; } } m_CachedDragStateData = dragStateData; } }
void OnEndDrag(Vector3 position) { DragStateData stateData = new DragStateData(); stateData.position = position; stateData.dragState = DragState.OnEnd; stateData.hashObjectDragged = m_DraggablePad.gameObject.GetHashCode(); Dispatcher.Dispatch(Payload <ActionTypes> .From(ActionTypes.EndDrag, stateData)); m_AnchorSelection.OnEndDragPad(); }
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); }