Esempio n. 1
0
        /// <summary>
        /// Process all mouse events. This is the same as the StandaloneInputModule version except that
        /// it takes MouseState as a parameter, allowing it to be used for both Gaze and Mouse
        /// pointerss.
        /// </summary>
        private void ProcessMouseEvent(MouseState mouseData)
        {
            var pressed  = mouseData.AnyPressesThisFrame();
            var released = mouseData.AnyReleasesThisFrame();

            var leftButtonData = mouseData.GetButtonState(PointerEventData.InputButton.Left).eventData;

            if (!UseMouse(pressed, released, leftButtonData.buttonData))
            {
                return;
            }

            // Process the first mouse button fully
            ProcessMousePress(leftButtonData);
            ProcessMove(leftButtonData.buttonData);
            ProcessDrag(leftButtonData.buttonData);

            // Now process right / middle clicks
            ProcessMousePress(mouseData.GetButtonState(PointerEventData.InputButton.Right).eventData);
            ProcessDrag(mouseData.GetButtonState(PointerEventData.InputButton.Right).eventData.buttonData);
            ProcessMousePress(mouseData.GetButtonState(PointerEventData.InputButton.Middle).eventData);
            ProcessDrag(mouseData.GetButtonState(PointerEventData.InputButton.Middle).eventData.buttonData);

            if (!Mathf.Approximately(leftButtonData.buttonData.scrollDelta.sqrMagnitude, 0.0f))
            {
                var scrollHandler = ExecuteEvents.GetEventHandler <IScrollHandler>(leftButtonData.buttonData.pointerCurrentRaycast.gameObject);
                ExecuteEvents.ExecuteHierarchy(scrollHandler, leftButtonData.buttonData, ExecuteEvents.scrollHandler);
            }
        }
Esempio n. 2
0
        private void ProcessMouseEvent()
        {
            MouseState           mouseData      = this.GetMousePointerEventData();
            MouseButtonEventData leftButtonData = mouseData.GetButtonState(PointerEventData.InputButton.Left).eventData;

            this.currentFocusedGameObject = leftButtonData.buttonData.pointerCurrentRaycast.displayObject;

            // Process the first mouse button fully
            this.ProcessMousePress(leftButtonData);
            this.ProcessMove(leftButtonData.buttonData);
            this.ProcessDrag(leftButtonData.buttonData);

            // Now process right / middle clicks
            this.ProcessMousePress(mouseData.GetButtonState(PointerEventData.InputButton.Right).eventData);
            this.ProcessDrag(mouseData.GetButtonState(PointerEventData.InputButton.Right).eventData.buttonData);
            this.ProcessMousePress(mouseData.GetButtonState(PointerEventData.InputButton.Middle).eventData);
            this.ProcessDrag(mouseData.GetButtonState(PointerEventData.InputButton.Middle).eventData.buttonData);

            if (!Mathf.Approximately(leftButtonData.buttonData.scrollDelta.sqrMagnitude, 0.0f))
            {
                DisplayObject scrollHandler =
                    ExecuteEvents.GetEventHandler(leftButtonData.buttonData.pointerCurrentRaycast.displayObject,
                                                  EventTriggerType.Scroll);
                ExecuteEvents.ExecuteHierarchy(scrollHandler, leftButtonData.buttonData, EventTriggerType.Scroll);
            }
        }
Esempio n. 3
0
        private void ProcessMouseEvent()
        {
            MouseState mouseData = this.GetMouseData();

            MouseButtonEventData leftButtonData = mouseData.GetButtonState(InputData.InputButton.Left).eventData;

            this.ProcessMousePress(leftButtonData);
            this.ProcessMove(leftButtonData.buttonData);
            this.ProcessDrag(leftButtonData.buttonData);

            this.ProcessMousePress(mouseData.GetButtonState(InputData.InputButton.Right).eventData);
            this.ProcessDrag(mouseData.GetButtonState(InputData.InputButton.Right).eventData.buttonData);

            this.ProcessMousePress(mouseData.GetButtonState(InputData.InputButton.Middle).eventData);
            this.ProcessDrag(mouseData.GetButtonState(InputData.InputButton.Middle).eventData.buttonData);

            if (!Mathf.Approximately(leftButtonData.buttonData.scrollDelta.sqrMagnitude, 0.0f))
            {
                IInteractive currentOverObj = leftButtonData.buttonData.currentRaycast.interactive;
                if (currentOverObj != null && this.pointerHandler != null)
                {
                    this.pointerHandler.Invoke(currentOverObj, PointerType.Scroll, leftButtonData.buttonData);
                }
            }
        }
Esempio n. 4
0
        /// <summary>
        /// overwritten from the base version so we can use our custom
        /// </summary>
        /// <returns></returns>
        override protected MouseState GetGazePointerData()
        {
            MouseState state = base.GetGazePointerData();

            var raycast = state.GetButtonState(PointerEventData.InputButton.Left).eventData.buttonData.pointerCurrentRaycast;

            //get custom press state
            PointerEventData.FramePressState pressState = GetGazeButtonState(raycast.gameObject);
            //set it
            state.SetButtonState(PointerEventData.InputButton.Left, pressState, state.GetButtonState(PointerEventData.InputButton.Left).eventData.buttonData);

            return(state);
        }
    private void TriggerPress(MouseState mouseData_)
    {
        var buttonData = mouseData_.GetButtonState(PointerEventData.InputButton.Left).eventData;

        buttonData.buttonState = PointerEventData.FramePressState.PressedAndReleased;
        _pressCount++;
    }
Esempio n. 6
0
        protected void ProcessMouseEvent(int id)
        {
            MouseState           mousePointerEventData = GetMousePointerEventData(id);
            MouseButtonEventData eventData             = mousePointerEventData.GetButtonState(PointerEventData.InputButton.Left).eventData;

            ProcessMousePress(eventData);
            ProcessMove(eventData.buttonData);
            ProcessDrag(eventData.buttonData);
            ProcessMousePress(mousePointerEventData.GetButtonState(PointerEventData.InputButton.Right).eventData);
            ProcessDrag(mousePointerEventData.GetButtonState(PointerEventData.InputButton.Right).eventData.buttonData);
            ProcessMousePress(mousePointerEventData.GetButtonState(PointerEventData.InputButton.Middle).eventData);
            ProcessDrag(mousePointerEventData.GetButtonState(PointerEventData.InputButton.Middle).eventData.buttonData);
            if (!Mathf.Approximately(eventData.buttonData.scrollDelta.sqrMagnitude, 0f))
            {
                GameObject eventHandler = ExecuteEvents.GetEventHandler <IScrollHandler>(eventData.buttonData.pointerCurrentRaycast.gameObject);
                ExecuteEvents.ExecuteHierarchy(eventHandler, eventData.buttonData, ExecuteEvents.scrollHandler);
            }
        }
        private GestureEventData[] GetMouseEvents()
        {
            MouseState mouseData = GetMousePointerEventData(0);

            return(new GestureEventData[]
            {
                MouseToTouch(mouseData.GetButtonState(PointerEventData.InputButton.Left).eventData)
            });
        }
    private void processMouseEvent(MouseState mouseData)
    {
        var leftButtonData = mouseData.GetButtonState(PointerEventData.InputButton.Left).eventData;

        processMousePress(leftButtonData);
        ProcessMove(leftButtonData.buttonData);
        ProcessDrag(leftButtonData.buttonData);

        processMousePress(mouseData.GetButtonState(PointerEventData.InputButton.Right).eventData);
        ProcessDrag(mouseData.GetButtonState(PointerEventData.InputButton.Right).eventData.buttonData);
        processMousePress(mouseData.GetButtonState(PointerEventData.InputButton.Middle).eventData);
        ProcessDrag(mouseData.GetButtonState(PointerEventData.InputButton.Middle).eventData.buttonData);

        if (Mathf.Approximately(leftButtonData.buttonData.scrollDelta.sqrMagnitude, 0.0f) == false)
        {
            var scrollHandler = ExecuteEvents.GetEventHandler <IScrollHandler>(leftButtonData.buttonData.pointerCurrentRaycast.gameObject);
            ExecuteEvents.ExecuteHierarchy(scrollHandler, leftButtonData.buttonData, ExecuteEvents.scrollHandler);
        }
    }
Esempio n. 9
0
        /// <summary>
        ///   <para>Iterate through all the different mouse events.</para>
        /// </summary>
        /// <param name="id">The mouse pointer Event data id to get.</param>
        protected void ProcessMouseEvent(int id)
        {
            MouseState           pointerEventData = GetMousePointerEventData(id);
            MouseButtonEventData eventData        = pointerEventData.GetButtonState(PointerEventData.InputButton.Left).eventData;

            m_CurrentFocusedGameObject = eventData.buttonData.pointerCurrentRaycast.gameObject;
            ProcessMousePress(eventData);
            ProcessMove(eventData.buttonData);
            ProcessDrag(eventData.buttonData);
            ProcessMousePress(pointerEventData.GetButtonState(PointerEventData.InputButton.Right).eventData);
            ProcessDrag(pointerEventData.GetButtonState(PointerEventData.InputButton.Right).eventData.buttonData);
            ProcessMousePress(pointerEventData.GetButtonState(PointerEventData.InputButton.Middle).eventData);
            ProcessDrag(pointerEventData.GetButtonState(PointerEventData.InputButton.Middle).eventData.buttonData);
            if (Mathf.Approximately(eventData.buttonData.scrollDelta.sqrMagnitude, 0.0f))
            {
                return;
            }
            ExecuteEvents.ExecuteHierarchy <IScrollHandler>(ExecuteEvents.GetEventHandler <IScrollHandler>(eventData.buttonData.pointerCurrentRaycast.gameObject), eventData.buttonData, ExecuteEvents.scrollHandler);
        }
Esempio n. 10
0
            public void SimulateClick()
            {
                // Use the existing EventSystems input module input as the
                // input for our custom input module.
                m_InputOverride = EventSystem.current.currentInputModule.input;
                MouseState           mousePointerEventData = GetMousePointerEventData();
                MouseButtonEventData buttonState           = mousePointerEventData.GetButtonState(PointerEventData.InputButton.Left).eventData;

                // Set the mouse button state to "PressedAndReleased" to indicate a mouse click occurred
                buttonState.buttonState = PointerEventData.FramePressState.PressedAndReleased;
                ProcessMousePress(buttonState);
            }
    void GetClientMouseState(MouseState mouseData)
    {
        if (_client != null && ClusterHelper.Instance.UseInputEventPhase)
        {
            //Debug.Log("UpdateInputEvent");
            ClusterHelper.Instance.UpdateInputEvent();
        }

        if (_client != null && _mouseState != null)
        {
            CopyFromTo(_mouseState.buttonStateList[0], mouseData.GetButtonState(PointerEventData.InputButton.Left), isSendingPositionState, isSendingPressState);
            CopyFromTo(_mouseState.buttonStateList[1], mouseData.GetButtonState(PointerEventData.InputButton.Right), isSendingPositionState, isSendingPressState);
            CopyFromTo(_mouseState.buttonStateList[2], mouseData.GetButtonState(PointerEventData.InputButton.Middle), isSendingPositionState, isSendingPressState);

#if FIX_DUP_RAYCAST
            ObjectSyncProfiler.BeginSample("RaycastAll");
            RaycastAll(mouseData);
            ObjectSyncProfiler.EndSample("RaycastAll", true);
#else
            var leftData = mouseData.GetButtonState(PointerEventData.InputButton.Left).eventData.buttonData;
            eventSystem.RaycastAll(leftData, m_RaycastResultCache);
            var raycast = FindFirstRaycast(m_RaycastResultCache);
            leftData.pointerCurrentRaycast = raycast;
            m_RaycastResultCache.Clear();

            var rightData  = mouseData.GetButtonState(PointerEventData.InputButton.Right).eventData.buttonData;
            var middleData = mouseData.GetButtonState(PointerEventData.InputButton.Middle).eventData.buttonData;
            rightData.pointerCurrentRaycast  = raycast;
            middleData.pointerCurrentRaycast = raycast;
#endif
        }
    }
Esempio n. 12
0
            private void SimulateButtonState(PointerEventData.FramePressState state, PointerEventData.InputButton button)
            {
                // Use the existing EventSystems input module input as the
                // input for our custom input module.
                m_InputOverride = EventSystem.current.currentInputModule.input;
                MouseState mousePointerEventData = GetMousePointerEventData();
                // Retrieve button state data for intended button
                MouseButtonEventData buttonState = mousePointerEventData.GetButtonState(button).eventData;

                // Set the mouse button state to required state
                buttonState.buttonState = state;
                ProcessMousePress(buttonState);
            }
Esempio n. 13
0
        public void Disable()
        {
            if (m_ProcessType == ProcessType.Default)
            {
                // Default
                return;
            }

            MouseState           mouseData        = GetMousePointerEventData();
            MouseButtonEventData leftButtonData   = mouseData.GetButtonState(PointerEventData.InputButton.Left).eventData;
            PointerEventData     pointerEventData = leftButtonData.buttonData;

            // Press 中なら強制解除
            if (pointerEventData.pointerPress != null)
            {
                ExecuteEvents.Execute(pointerEventData.pointerPress, pointerEventData, ExecuteEvents.pointerUpHandler);

                GameObject pointerUpHandler = ExecuteEvents.GetEventHandler <IPointerClickHandler>(pointerEventData.pointerCurrentRaycast.gameObject);

                // PointerClick and Drop events
//				if( pointerEventData.pointerPress == pointerUpHandler && pointerEventData.eligibleForClick )
//				{
//					ExecuteEvents.Execute( pointerEventData.pointerPress, pointerEventData, ExecuteEvents.pointerClickHandler ) ;
//				}
//				else
//				if( pointerEventData.pointerDrag != null && pointerEventData.dragging == true )
//				{
//					ExecuteEvents.ExecuteHierarchy( pointerEventData.pointerCurrentRaycast.gameObject, pointerEventData, ExecuteEvents.dropHandler ) ;
//				}

                pointerEventData.eligibleForClick = false;
                pointerEventData.pointerPress     = null;
                pointerEventData.rawPointerPress  = null;
            }

            if (pointerEventData.pointerDrag != null && pointerEventData.dragging == true)
            {
                ExecuteEvents.Execute(pointerEventData.pointerDrag, pointerEventData, ExecuteEvents.endDragHandler);

                pointerEventData.dragging    = false;
                pointerEventData.pointerDrag = null;
            }

            // Hover 中なら強制解除
            if (pointerEventData.pointerEnter != null)
            {
                HandlePointerExitAndEnter(pointerEventData, null);
            }

            m_Disable = true;
        }
Esempio n. 14
0
        private void FakeTouches()
        {
            MouseState           mousePointerEventData = GetMousePointerEventData(0);
            MouseButtonEventData eventData             = mousePointerEventData.GetButtonState(PointerEventData.InputButton.Left).eventData;

            if (eventData.PressedThisFrame())
            {
                eventData.buttonData.delta = Vector2.zero;
            }
            ProcessTouchPress(eventData.buttonData, eventData.PressedThisFrame(), eventData.ReleasedThisFrame());
            if (Input.GetMouseButton(0))
            {
                ProcessMove(eventData.buttonData);
                ProcessDrag(eventData.buttonData);
            }
        }
        public override void Process()
        {
            // Try to get pointer for this input module
            pointerEventData = new PointerEventData(EventSystem.current);
            GetPointerData(kMouseLeftId, out pointerEventData, true);

            pointerEventData.Reset();
            pointerEventData.delta       = Vector2.zero;
            pointerEventData.position    = new Vector2(Screen.width * 0.5f, Screen.height * 0.5f);
            pointerEventData.scrollDelta = Vector2.zero;
            pointerEventData.button      = PointerEventData.InputButton.Left;

            // Raycast pointer to canvas
            m_RaycastResultCache.Clear();
            eventSystem.RaycastAll(pointerEventData, m_RaycastResultCache);
            pointerEventData.pointerCurrentRaycast = FindFirstRaycast(m_RaycastResultCache);
            PointerHitCanvas = m_RaycastResultCache.Count > 0;
            UpdatePointerWorldPosition();

            // Process presses & events
            mouseState.SetButtonState(PointerEventData.InputButton.Left, GetPressState(), pointerEventData);
            MouseButtonEventData buttonState = mouseState.GetButtonState(PointerEventData.InputButton.Left).eventData;

            if (buttonState.PressedThisFrame())
            {
                ButtonPress(buttonState.buttonData);
            }

            if (buttonState.ReleasedThisFrame())
            {
                ButtonRelease(buttonState.buttonData);
            }

            ProcessMove(buttonState.buttonData);

            if (buttonHeld)
            {
                ProcessDrag(buttonState.buttonData);
            }
        }
    void SendServerMouseState(MouseState mouseData)
    {
        if (_server != null)
        {
            _mouseState = _mouseState ?? new FDUObjectSync.MouseState();

            _mouseState.buttonStateList.ForEach(buttonState_ =>
            {
                var button      = mouseData.GetButtonState((PointerEventData.InputButton)buttonState_.button);
                var buttonData  = button.eventData.buttonData;
                var buttonState = button.eventData.buttonState;

                buttonState_.position    = buttonData.position;
                buttonState_.delta       = buttonData.delta;
                buttonState_.scrollDelta = buttonData.scrollDelta;
                buttonState_.buttonState = (FramePressState)buttonState;

                // normalize
                buttonState_.position = new Vector2(
                    buttonState_.position.x / Screen.width,
                    buttonState_.position.y / Screen.height);

                buttonState_.delta = new Vector2(
                    buttonState_.delta.x / Screen.width,
                    buttonState_.delta.y / Screen.height);

                buttonState_.scrollDelta = new Vector2(
                    buttonState_.scrollDelta.x / Screen.width,
                    buttonState_.scrollDelta.y / Screen.height);
            });
            _server.SendState(_objectId, this);
            _server.FlushBuffer();
            if (ClusterHelper.Instance.UseInputEventPhase)
            {
                //Debug.Log("SendEofInputEvent");
                _server.SendEofInputEvent();
            }
        }
    }
Esempio n. 17
0
    protected override MouseState GetMousePointerEventData(int id)
    {
        MouseState ret = base.GetMousePointerEventData(id);

        if (ControlMethod != CUIControlMethod.MOUSE && ControlMethod != CUIControlMethod.WORLD_MOUSE)
        {
            ret.SetButtonState(PointerEventData.InputButton.Left, CustomRayFramePressedState(), ret.GetButtonState(PointerEventData.InputButton.Left).eventData.buttonData);
        }

        return(ret);
    }
Esempio n. 18
0
 public static MouseButtonEventData GetInputButtonState(PointerEventData.InputButton button = PointerEventData.InputButton.Left)
 {
     return(inputState.GetButtonState(button).eventData);
 }
        public override void Process()
        {
            if (eventSystem.currentSelectedGameObject != null)
            {
                ExecuteEvents.Execute(eventSystem.currentSelectedGameObject, GetBaseEventData(), ExecuteEvents.updateSelectedHandler);
            }

            PointerEventData eventData;

            GetPointerData(kMouseLeftId, out eventData, true);
            eventData.Reset();
            eventData.scrollDelta = Input.mouseScrollDelta;

            if (graphicRaycaster)
            {
                graphicRaycaster.Raycast(eventData, m_RaycastResultCache);
                eventData.pointerCurrentRaycast = FindFirstRaycast(m_RaycastResultCache);
                m_RaycastResultCache.Clear();
            }

            MouseState mouseState = new MouseState();

            mouseState.SetButtonState(PointerEventData.InputButton.Left, StateForMouseButton(0), eventData);

            MouseButtonEventData buttonData   = mouseState.GetButtonState(PointerEventData.InputButton.Left).eventData;
            PointerEventData     pointerEvent = buttonData.buttonData;
            GameObject           currentGO    = pointerEvent.pointerCurrentRaycast.gameObject;

            // mouse pointer down
            if (buttonData.PressedThisFrame())
            {
                pointerEvent.eligibleForClick    = true;
                pointerEvent.delta               = Vector2.zero;
                pointerEvent.pressPosition       = pointerEvent.position;
                pointerEvent.pointerPressRaycast = pointerEvent.pointerCurrentRaycast;

                DeselectIfSelectionChanged(currentGO, pointerEvent);

                GameObject pressedGO = ExecuteEvents.ExecuteHierarchy(currentGO, pointerEvent, ExecuteEvents.pointerDownHandler);

                if (pressedGO == null)
                {
                    pressedGO = ExecuteEvents.GetEventHandler <IPointerClickHandler>(currentGO);
                }

                pointerEvent.clickCount      = 1;
                pointerEvent.pointerPress    = pressedGO;
                pointerEvent.rawPointerPress = currentGO;
                pointerEvent.clickTime       = Time.unscaledTime;
            }

            // mouse pointer up
            if (buttonData.ReleasedThisFrame())
            {
                ExecuteEvents.Execute(pointerEvent.pointerPress, pointerEvent, ExecuteEvents.pointerUpHandler);

                GameObject pointerUpHandler = ExecuteEvents.GetEventHandler <IPointerClickHandler>(currentGO);
                if (pointerEvent.pointerPress == pointerUpHandler && pointerEvent.eligibleForClick)
                {
                    ExecuteEvents.Execute(pointerEvent.pointerPress, pointerEvent, ExecuteEvents.pointerClickHandler);
                }

                if (currentGO != pointerEvent.pointerEnter)
                {
                    HandlePointerExitAndEnter(pointerEvent, null);
                    HandlePointerExitAndEnter(pointerEvent, currentGO);
                }
            }

            // scroll wheel
            if (!Mathf.Approximately(buttonData.buttonData.scrollDelta.sqrMagnitude, 0.0f))
            {
                GameObject scrollHandler = ExecuteEvents.GetEventHandler <IScrollHandler>(buttonData.buttonData.pointerCurrentRaycast.gameObject);
                ExecuteEvents.ExecuteHierarchy(scrollHandler, buttonData.buttonData, ExecuteEvents.scrollHandler);
            }
        }
Esempio n. 20
0
        /// <summary>
        /// Process all mouse events. This is the same as the StandaloneInputModule version except that
        /// it takes MouseState as a parameter, allowing it to be used for both Gaze and Mouse 
        /// pointerss.
        /// </summary>
        private void ProcessMouseEvent(MouseState mouseData)
        {
            var pressed = mouseData.AnyPressesThisFrame();
            var released = mouseData.AnyReleasesThisFrame();

            var leftButtonData = mouseData.GetButtonState(PointerEventData.InputButton.Left).eventData;

            if (!UseMouse(pressed, released, leftButtonData.buttonData))
                return;

            // Process the first mouse button fully
            ProcessMousePress(leftButtonData);
            ProcessMove(leftButtonData.buttonData);
            ProcessDrag(leftButtonData.buttonData);

            // Now process right / middle clicks
            ProcessMousePress(mouseData.GetButtonState(PointerEventData.InputButton.Right).eventData);
            ProcessDrag(mouseData.GetButtonState(PointerEventData.InputButton.Right).eventData.buttonData);
            ProcessMousePress(mouseData.GetButtonState(PointerEventData.InputButton.Middle).eventData);
            ProcessDrag(mouseData.GetButtonState(PointerEventData.InputButton.Middle).eventData.buttonData);

            if (!Mathf.Approximately(leftButtonData.buttonData.scrollDelta.sqrMagnitude, 0.0f))
            {
                var scrollHandler = ExecuteEvents.GetEventHandler<IScrollHandler>(leftButtonData.buttonData.pointerCurrentRaycast.gameObject);
                ExecuteEvents.ExecuteHierarchy(scrollHandler, leftButtonData.buttonData, ExecuteEvents.scrollHandler);
            }
        }
Esempio n. 21
0
        private void ProcessMouseEventForPC()
        {
            if (m_Disable == true)
            {
                return;
            }

            //----------------------------------

            MouseState mouseData = GetMousePointerEventData();

            bool pressed  = mouseData.AnyPressesThisFrame();
            bool released = mouseData.AnyReleasesThisFrame();

            MouseButtonEventData leftButtonData = mouseData.GetButtonState(PointerEventData.InputButton.Left).eventData;

            if (leftButtonData.PressedThisFrame() == true)
            {
                m_LastPress = leftButtonData.buttonData.pointerCurrentRaycast.gameObject;
//				Debug.LogWarning( "LastPress設定:" + m_LastPress ) ;
            }

            //レイキャスト消失により Relese 状態になった場合の対応
            bool isPressed = Input.GetMouseButton(0);

            if (isPressed != m_IsPressed)
            {
//				if( isPressed == false )
//				{
//					Debug.LogWarning( "直判定で離された:" + leftButtonData.buttonState ) ;
//				}

                if (released == false && isPressed == false)
                {
                    released = true;

                    if (leftButtonData.buttonState == PointerEventData.FramePressState.NotChanged)
                    {
                        leftButtonData.buttonState = PointerEventData.FramePressState.Released;

//						Debug.LogWarning( "LastPress:" + m_LastPress ) ;

                        leftButtonData.buttonData.pointerPress = m_LastPress;
                        m_LastPress = null;
                    }
                }

                m_IsPressed = isPressed;
            }

            // マウスオーバーに関してはマウスが動いていなくても取りたい
            ProcessHoverForPC(leftButtonData.buttonData);

            if (UseMouseForPC(pressed, released, leftButtonData.buttonData) == false)
            {
                // 何のイベントも無い
                return;
            }

            // Process the first mouse button fully
            ProcessMousePress(leftButtonData);                  // デフォルトでは途中でレイキャストが変わった場合のリリースがうまくいかないので改造版を使用する
//			ProcessMove( leftButtonData.buttonData ) ;
            ProcessDrag(leftButtonData.buttonData);

            // Now process right / middle clicks
//			ProcessMousePress( mouseData.GetButtonState( PointerEventData.InputButton.Right ).eventData ) ;
//			ProcessDrag( mouseData.GetButtonState( PointerEventData.InputButton.Right ).eventData.buttonData ) ;
//			ProcessMousePress( mouseData.GetButtonState( PointerEventData.InputButton.Middle ).eventData ) ;
//			ProcessDrag( mouseData.GetButtonState(PointerEventData.InputButton.Middle).eventData.buttonData ) ;

            if (Mathf.Approximately(leftButtonData.buttonData.scrollDelta.sqrMagnitude, 0.0f) == false)
            {
                GameObject scrollHandler = ExecuteEvents.GetEventHandler <IScrollHandler>(leftButtonData.buttonData.pointerCurrentRaycast.gameObject);
                ExecuteEvents.ExecuteHierarchy(scrollHandler, leftButtonData.buttonData, ExecuteEvents.scrollHandler);
            }
        }
 public static bool CheckButtonState(this MouseState state, MouseButtons button)
 {
     return(state.GetButtonState(button) == ButtonState.Pressed);
 }