Пример #1
0
        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();
        }
Пример #4
0
        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);
        }