Esempio n. 1
0
    /// <summary>
    ///   <para>Return the current MouseState.</para>
    /// </summary>
    /// <param name="id"></param>
    protected VirtualPointerInput.MouseState GetMousePointerEventData(int id, Vector3 mousePos)
    {
        PointerEventData data1;
        bool             pointerData = this.GetPointerData(-1, out data1, true);

        data1.Reset();
        if (pointerData)
        {
            data1.position = (Vector2)mousePos;
        }
        Vector2 mousePosition = (Vector2)mousePos;

        data1.delta       = mousePosition - data1.position;
        data1.position    = mousePosition;
        data1.scrollDelta = Input.mouseScrollDelta;
        data1.button      = PointerEventData.InputButton.Left;
        this.eventSystem.RaycastAll(data1, this.m_RaycastResultCache);
        RaycastResult firstRaycast = BaseInputModule.FindFirstRaycast(this.m_RaycastResultCache);

        data1.pointerCurrentRaycast = firstRaycast;
        this.m_RaycastResultCache.Clear();
        PointerEventData data2;

        this.GetPointerData(-2, out data2, true);
        this.CopyFromTo(data1, data2);
        data2.button = PointerEventData.InputButton.Right;
        PointerEventData data3;

        this.GetPointerData(-3, out data3, true);
        this.CopyFromTo(data1, data3);
        data3.button = PointerEventData.InputButton.Middle;
        this.m_MouseState.SetButtonState(PointerEventData.InputButton.Left, VirtualPointerInput.StateForMouseButton(0), data1);
        this.m_MouseState.SetButtonState(PointerEventData.InputButton.Right, VirtualPointerInput.StateForMouseButton(1), data2);
        this.m_MouseState.SetButtonState(PointerEventData.InputButton.Middle, VirtualPointerInput.StateForMouseButton(2), data3);
        return(this.m_MouseState);
    }
Esempio n. 2
0
    /// <summary>
    ///   <para>Process the drag for the current frame with the given pointer event.</para>
    /// </summary>
    /// <param name="pointerEvent"></param>
    protected virtual void ProcessDrag(PointerEventData pointerEvent)
    {
        bool flag = pointerEvent.IsPointerMoving();

        if (flag && (Object)pointerEvent.pointerDrag != (Object)null && (!pointerEvent.dragging && VirtualPointerInput.ShouldStartDrag(pointerEvent.pressPosition, pointerEvent.position, (float)this.eventSystem.pixelDragThreshold, pointerEvent.useDragThreshold)))
        {
            ExecuteEvents.Execute <IBeginDragHandler>(pointerEvent.pointerDrag, (BaseEventData)pointerEvent, ExecuteEvents.beginDragHandler);
            pointerEvent.dragging = true;
        }
        if (!pointerEvent.dragging || !flag || !((Object)pointerEvent.pointerDrag != (Object)null))
        {
            return;
        }
        if ((Object)pointerEvent.pointerPress != (Object)pointerEvent.pointerDrag)
        {
            ExecuteEvents.Execute <IPointerUpHandler>(pointerEvent.pointerPress, (BaseEventData)pointerEvent, ExecuteEvents.pointerUpHandler);
            pointerEvent.eligibleForClick = false;
            pointerEvent.pointerPress     = (GameObject)null;
            pointerEvent.rawPointerPress  = (GameObject)null;
        }
        ExecuteEvents.Execute <IDragHandler>(pointerEvent.pointerDrag, (BaseEventData)pointerEvent, ExecuteEvents.dragHandler);
    }