예제 #1
0
        private void ProcessTouchPress(PointerEventData pointerEvent, bool pressed, bool released)
        {
            RaycastResult pointerCurrentRaycast = pointerEvent.get_pointerCurrentRaycast();
            // ISSUE: explicit reference operation
            GameObject gameObject1 = ((RaycastResult)@pointerCurrentRaycast).get_gameObject();

            if (pressed)
            {
                pointerEvent.set_eligibleForClick(true);
                pointerEvent.set_delta(Vector2.get_zero());
                pointerEvent.set_pressPosition(pointerEvent.get_position());
                pointerEvent.set_pointerPressRaycast(pointerEvent.get_pointerCurrentRaycast());
                if (Object.op_Inequality((Object)pointerEvent.get_pointerEnter(), (Object)gameObject1))
                {
                    ((BaseInputModule)this).HandlePointerExitAndEnter(pointerEvent, gameObject1);
                    pointerEvent.set_pointerEnter(gameObject1);
                }
                GameObject gameObject2 = ExecuteEvents.ExecuteHierarchy <IPointerDownHandler>(gameObject1, (BaseEventData)pointerEvent, (ExecuteEvents.EventFunction <M0>)ExecuteEvents.get_pointerDownHandler());
                if (Object.op_Equality((Object)gameObject2, (Object)null))
                {
                    gameObject2 = ExecuteEvents.GetEventHandler <IPointerClickHandler>(gameObject1);
                }
                if (Object.op_Inequality((Object)gameObject2, (Object)pointerEvent.get_pointerPress()))
                {
                    pointerEvent.set_pointerPress(gameObject2);
                    pointerEvent.set_rawPointerPress(gameObject1);
                    pointerEvent.set_clickCount(0);
                }
                pointerEvent.set_pointerDrag(ExecuteEvents.GetEventHandler <IDragHandler>(gameObject1));
                if (Object.op_Inequality((Object)pointerEvent.get_pointerDrag(), (Object)null))
                {
                    ExecuteEvents.Execute <IBeginDragHandler>(pointerEvent.get_pointerDrag(), (BaseEventData)pointerEvent, (ExecuteEvents.EventFunction <M0>)ExecuteEvents.get_beginDragHandler());
                }
                ((BaseInputModule)this).get_eventSystem().SetSelectedGameObject(ExecuteEvents.GetEventHandler <ISelectHandler>(gameObject1), (BaseEventData)pointerEvent);
            }
            if (!released)
            {
                return;
            }
            float unscaledTime1 = Time.get_unscaledTime();

            if ((double)this.mDoubleTap1stReleasedTime < 0.0)
            {
                this.mDoubleTap1stReleasedTime = unscaledTime1;
            }
            else if ((double)unscaledTime1 - (double)this.mDoubleTap1stReleasedTime >= 0.300000011920929)
            {
                this.mDoubleTap1stReleasedTime = unscaledTime1;
            }
            else
            {
                this.OnDoubleTap(pointerEvent.get_position());
                this.mDoubleTap1stReleasedTime = -1f;
            }
            ExecuteEvents.Execute <IPointerUpHandler>(pointerEvent.get_pointerPress(), (BaseEventData)pointerEvent, (ExecuteEvents.EventFunction <M0>)ExecuteEvents.get_pointerUpHandler());
            GameObject eventHandler = ExecuteEvents.GetEventHandler <IPointerClickHandler>(gameObject1);

            if (Object.op_Equality((Object)pointerEvent.get_pointerPress(), (Object)eventHandler) && pointerEvent.get_eligibleForClick())
            {
                float unscaledTime2 = Time.get_unscaledTime();
                if ((double)unscaledTime2 - (double)pointerEvent.get_clickTime() < 0.300000011920929)
                {
                    PointerEventData pointerEventData = pointerEvent;
                    pointerEventData.set_clickCount(pointerEventData.get_clickCount() + 1);
                }
                else
                {
                    pointerEvent.set_clickCount(1);
                }
                pointerEvent.set_clickTime(unscaledTime2);
                ExecuteEvents.Execute <IPointerClickHandler>(pointerEvent.get_pointerPress(), (BaseEventData)pointerEvent, (ExecuteEvents.EventFunction <M0>)ExecuteEvents.get_pointerClickHandler());
                this.SpawnTouchEffect(pointerEvent.get_position());
            }
            else if (Object.op_Inequality((Object)pointerEvent.get_pointerDrag(), (Object)null))
            {
                ExecuteEvents.ExecuteHierarchy <IDropHandler>(gameObject1, (BaseEventData)pointerEvent, (ExecuteEvents.EventFunction <M0>)ExecuteEvents.get_dropHandler());
            }
            pointerEvent.set_eligibleForClick(false);
            pointerEvent.set_pointerPress((GameObject)null);
            pointerEvent.set_rawPointerPress((GameObject)null);
            if (Object.op_Inequality((Object)pointerEvent.get_pointerDrag(), (Object)null))
            {
                ExecuteEvents.Execute <IEndDragHandler>(pointerEvent.get_pointerDrag(), (BaseEventData)pointerEvent, (ExecuteEvents.EventFunction <M0>)ExecuteEvents.get_endDragHandler());
            }
            pointerEvent.set_pointerDrag((GameObject)null);
            ExecuteEvents.ExecuteHierarchy <IPointerExitHandler>(pointerEvent.get_pointerEnter(), (BaseEventData)pointerEvent, (ExecuteEvents.EventFunction <M0>)ExecuteEvents.get_pointerExitHandler());
            pointerEvent.set_pointerEnter((GameObject)null);
        }
예제 #2
0
        protected void ProcessMousePress(PointerInputModule.MouseButtonEventData data)
        {
            PointerEventData buttonData            = (PointerEventData)data.buttonData;
            RaycastResult    pointerCurrentRaycast = buttonData.get_pointerCurrentRaycast();
            GameObject       gameObject1           = ((RaycastResult) ref pointerCurrentRaycast).get_gameObject();

            if (data.PressedThisFrame())
            {
                buttonData.set_eligibleForClick(true);
                buttonData.set_delta(Vector2.get_zero());
                buttonData.set_dragging(false);
                buttonData.set_useDragThreshold(true);
                buttonData.set_pressPosition(buttonData.get_position());
                buttonData.set_pointerPressRaycast(buttonData.get_pointerCurrentRaycast());
                this.DeselectIfSelectionChanged(gameObject1, (BaseEventData)buttonData);
                GameObject gameObject2 = ExecuteEvents.ExecuteHierarchy <IPointerDownHandler>(gameObject1, (BaseEventData)buttonData, (ExecuteEvents.EventFunction <M0>)ExecuteEvents.get_pointerDownHandler());
                if (Object.op_Equality((Object)gameObject2, (Object)null))
                {
                    gameObject2 = ExecuteEvents.GetEventHandler <IPointerClickHandler>(gameObject1);
                }
                float unscaledTime = Time.get_unscaledTime();
                if (Object.op_Equality((Object)gameObject2, (Object)buttonData.get_lastPress()))
                {
                    if ((double)(unscaledTime - buttonData.get_clickTime()) < 0.300000011920929)
                    {
                        PointerEventData pointerEventData = buttonData;
                        pointerEventData.set_clickCount(pointerEventData.get_clickCount() + 1);
                    }
                    else
                    {
                        buttonData.set_clickCount(1);
                    }
                    buttonData.set_clickTime(unscaledTime);
                }
                else
                {
                    buttonData.set_clickCount(1);
                }
                buttonData.set_pointerPress(gameObject2);
                buttonData.set_rawPointerPress(gameObject1);
                buttonData.set_clickTime(unscaledTime);
                buttonData.set_pointerDrag(ExecuteEvents.GetEventHandler <IDragHandler>(gameObject1));
                if (Object.op_Inequality((Object)buttonData.get_pointerDrag(), (Object)null))
                {
                    ExecuteEvents.Execute <IInitializePotentialDragHandler>(buttonData.get_pointerDrag(), (BaseEventData)buttonData, (ExecuteEvents.EventFunction <M0>)ExecuteEvents.get_initializePotentialDrag());
                }
            }
            if (!data.ReleasedThisFrame())
            {
                return;
            }
            ExecuteEvents.Execute <IPointerUpHandler>(buttonData.get_pointerPress(), (BaseEventData)buttonData, (ExecuteEvents.EventFunction <M0>)ExecuteEvents.get_pointerUpHandler());
            GameObject eventHandler = ExecuteEvents.GetEventHandler <IPointerClickHandler>(gameObject1);

            if (Object.op_Equality((Object)buttonData.get_pointerPress(), (Object)eventHandler) && buttonData.get_eligibleForClick())
            {
                ExecuteEvents.Execute <IPointerClickHandler>(buttonData.get_pointerPress(), (BaseEventData)buttonData, (ExecuteEvents.EventFunction <M0>)ExecuteEvents.get_pointerClickHandler());
            }
            else if (Object.op_Inequality((Object)buttonData.get_pointerDrag(), (Object)null) && buttonData.get_dragging())
            {
                ExecuteEvents.ExecuteHierarchy <IDropHandler>(gameObject1, (BaseEventData)buttonData, (ExecuteEvents.EventFunction <M0>)ExecuteEvents.get_dropHandler());
            }
            buttonData.set_eligibleForClick(false);
            buttonData.set_pointerPress((GameObject)null);
            buttonData.set_rawPointerPress((GameObject)null);
            if (Object.op_Inequality((Object)buttonData.get_pointerDrag(), (Object)null) && buttonData.get_dragging())
            {
                ExecuteEvents.Execute <IEndDragHandler>(buttonData.get_pointerDrag(), (BaseEventData)buttonData, (ExecuteEvents.EventFunction <M0>)ExecuteEvents.get_endDragHandler());
            }
            buttonData.set_dragging(false);
            buttonData.set_pointerDrag((GameObject)null);
            if (!Object.op_Inequality((Object)gameObject1, (Object)buttonData.get_pointerEnter()))
            {
                return;
            }
            ((BaseInputModule)this).HandlePointerExitAndEnter(buttonData, (GameObject)null);
            ((BaseInputModule)this).HandlePointerExitAndEnter(buttonData, gameObject1);
        }
 protected virtual void ProcessDrag(PlayerPointerEventData pointerEvent)
 {
     if (!pointerEvent.IsPointerMoving() || Object.op_Equality((Object)pointerEvent.get_pointerDrag(), (Object)null) || pointerEvent.sourceType == PointerEventType.Mouse && this.GetMouseInputSource(pointerEvent.playerId, pointerEvent.inputSourceIndex).get_locked())
     {
         return;
     }
     if (!pointerEvent.get_dragging() && RewiredPointerInputModule.ShouldStartDrag(pointerEvent.get_pressPosition(), pointerEvent.get_position(), (float)this.get_eventSystem().get_pixelDragThreshold(), pointerEvent.get_useDragThreshold()))
     {
         ExecuteEvents.Execute <IBeginDragHandler>(pointerEvent.get_pointerDrag(), (BaseEventData)pointerEvent, (ExecuteEvents.EventFunction <M0>)ExecuteEvents.get_beginDragHandler());
         pointerEvent.set_dragging(true);
     }
     if (!pointerEvent.get_dragging())
     {
         return;
     }
     if (Object.op_Inequality((Object)pointerEvent.get_pointerPress(), (Object)pointerEvent.get_pointerDrag()))
     {
         ExecuteEvents.Execute <IPointerUpHandler>(pointerEvent.get_pointerPress(), (BaseEventData)pointerEvent, (ExecuteEvents.EventFunction <M0>)ExecuteEvents.get_pointerUpHandler());
         pointerEvent.set_eligibleForClick(false);
         pointerEvent.set_pointerPress((GameObject)null);
         pointerEvent.set_rawPointerPress((GameObject)null);
     }
     ExecuteEvents.Execute <IDragHandler>(pointerEvent.get_pointerDrag(), (BaseEventData)pointerEvent, (ExecuteEvents.EventFunction <M0>)ExecuteEvents.get_dragHandler());
 }
예제 #4
0
        protected void ProcessTouchPress(PointerEventData pointerEvent, bool pressed, bool released)
        {
            RaycastResult pointerCurrentRaycast = pointerEvent.get_pointerCurrentRaycast();
            GameObject    gameObject1           = ((RaycastResult) ref pointerCurrentRaycast).get_gameObject();

            if (pressed)
            {
                pointerEvent.set_eligibleForClick(true);
                pointerEvent.set_delta(Vector2.get_zero());
                pointerEvent.set_dragging(false);
                pointerEvent.set_useDragThreshold(true);
                pointerEvent.set_pressPosition(pointerEvent.get_position());
                pointerEvent.set_pointerPressRaycast(pointerEvent.get_pointerCurrentRaycast());
                this.DeselectIfSelectionChanged(gameObject1, (BaseEventData)pointerEvent);
                if (Object.op_Inequality((Object)pointerEvent.get_pointerEnter(), (Object)gameObject1))
                {
                    ((BaseInputModule)this).HandlePointerExitAndEnter(pointerEvent, gameObject1);
                    pointerEvent.set_pointerEnter(gameObject1);
                }
                GameObject gameObject2 = ExecuteEvents.ExecuteHierarchy <IPointerDownHandler>(gameObject1, (BaseEventData)pointerEvent, (ExecuteEvents.EventFunction <M0>)ExecuteEvents.get_pointerDownHandler());
                if (Object.op_Equality((Object)gameObject2, (Object)null))
                {
                    gameObject2 = ExecuteEvents.GetEventHandler <IPointerClickHandler>(gameObject1);
                }
                float unscaledTime = Time.get_unscaledTime();
                if (Object.op_Equality((Object)gameObject2, (Object)pointerEvent.get_lastPress()))
                {
                    if ((double)(unscaledTime - pointerEvent.get_clickTime()) < 0.3)
                    {
                        PointerEventData pointerEventData = pointerEvent;
                        pointerEventData.set_clickTime(pointerEventData.get_clickTime() + 1f);
                    }
                    else
                    {
                        pointerEvent.set_clickCount(1);
                    }
                    pointerEvent.set_clickTime(unscaledTime);
                }
                else
                {
                    pointerEvent.set_clickCount(1);
                }
                pointerEvent.set_pointerPress(gameObject2);
                pointerEvent.set_rawPointerPress(gameObject1);
                pointerEvent.set_clickTime(unscaledTime);
                pointerEvent.set_pointerDrag(ExecuteEvents.GetEventHandler <IDragHandler>(gameObject1));
                if (Object.op_Inequality((Object)pointerEvent.get_pointerDrag(), (Object)null))
                {
                    ExecuteEvents.Execute <IInitializePotentialDragHandler>(pointerEvent.get_pointerDrag(), (BaseEventData)pointerEvent, (ExecuteEvents.EventFunction <M0>)ExecuteEvents.get_initializePotentialDrag());
                }
            }
            if (!released)
            {
                return;
            }
            ExecuteEvents.Execute <IPointerUpHandler>(pointerEvent.get_pointerPress(), (BaseEventData)pointerEvent, (ExecuteEvents.EventFunction <M0>)ExecuteEvents.get_pointerUpHandler());
            GameObject eventHandler = ExecuteEvents.GetEventHandler <IPointerClickHandler>(gameObject1);

            if (Object.op_Equality((Object)pointerEvent.get_pointerPress(), (Object)eventHandler) && pointerEvent.get_eligibleForClick())
            {
                ExecuteEvents.Execute <IPointerClickHandler>(pointerEvent.get_pointerPress(), (BaseEventData)pointerEvent, (ExecuteEvents.EventFunction <M0>)ExecuteEvents.get_pointerClickHandler());
            }
            else if (Object.op_Inequality((Object)pointerEvent.get_pointerDrag(), (Object)null) && pointerEvent.get_dragging())
            {
                ExecuteEvents.ExecuteHierarchy <IDropHandler>(gameObject1, (BaseEventData)pointerEvent, (ExecuteEvents.EventFunction <M0>)ExecuteEvents.get_dropHandler());
            }
            pointerEvent.set_eligibleForClick(false);
            pointerEvent.set_pointerPress((GameObject)null);
            pointerEvent.set_rawPointerPress((GameObject)null);
            if (Object.op_Inequality((Object)pointerEvent.get_pointerDrag(), (Object)null) && pointerEvent.get_dragging())
            {
                ExecuteEvents.Execute <IEndDragHandler>(pointerEvent.get_pointerDrag(), (BaseEventData)pointerEvent, (ExecuteEvents.EventFunction <M0>)ExecuteEvents.get_endDragHandler());
            }
            pointerEvent.set_dragging(false);
            pointerEvent.set_pointerDrag((GameObject)null);
            ExecuteEvents.ExecuteHierarchy <IPointerExitHandler>(pointerEvent.get_pointerEnter(), (BaseEventData)pointerEvent, (ExecuteEvents.EventFunction <M0>)ExecuteEvents.get_pointerExitHandler());
            pointerEvent.set_pointerEnter((GameObject)null);
        }