Exemplo n.º 1
0
 void handleTouch()
 {
     if (Input.touchCount == 0)
     {
         finalizeTouch();
         touchState = GlobalTouchState.PASSIVE;
     }
     else if (Input.touchCount == 1)
     {
         if (touchState == GlobalTouchState.TWO_FINGERS)
         {
             return;
         }
         t1 = Input.GetTouch(0);
         handleOneTouch(t1);
     }
     else if (Input.touchCount == 2)
     {
         t1 = Input.GetTouch(0);
         if (touchState == GlobalTouchState.ONE_FINGER)
         {
             handleOneTouch(t1);
             return;
         }
         t2 = Input.GetTouch(1);
         //touchState == GlobalTouchState.PASSIVE){//
         //t1.phase == TouchPhase.Began || t2.phase == TouchPhase.Began
         if (touchState == GlobalTouchState.PASSIVE || touchState == GlobalTouchState.ONE_FINGER_STATIONARY)
         {
             if (CanvasController.events.onDblTouchBegin != null)
             {
                 CanvasController.events.onDblTouchBegin(t1, t2);
             }
             touchState = GlobalTouchState.TWO_FINGERS;
         }
         if (touchState != GlobalTouchState.TWO_FINGERS)
         {
             return;
         }
         if (t1.phase == TouchPhase.Moved || t2.phase == TouchPhase.Moved)
         {
             if (CanvasController.events.onDblTouch != null)
             {
                 CanvasController.events.onDblTouch(t1, t2);
             }
         }
     }
 }
Exemplo n.º 2
0
    void finalizeTouch()
    {
        if (touchWithinWorkspace)
        {
            touchWithinWorkspace = false;
        }
        switch (touchState)
        {
        case GlobalTouchState.ONE_FINGER:
        case GlobalTouchState.TWO_FINGERS:
            if (CanvasController.events.onTouchEnd != null)
            {
                CanvasController.events.onTouchEnd();
            }
            break;

        case GlobalTouchState.PASSIVE:
            break;
        }
        touchState = GlobalTouchState.PASSIVE;
    }
Exemplo n.º 3
0
    void handleOneTouch(Touch t)
    {
        canvasCamera.getCoordinates(t.position, ref globalPosition, ref pixelPosition);

        switch (t.phase)
        {
        case (TouchPhase.Began):
            touchState = GlobalTouchState.ONE_FINGER_STATIONARY;
            if (isMouseWithinCameraRect())
            {
                if (CanvasController.events.onTouchStart != null)
                {
                    CanvasController.events.onTouchStart(pixelPosition, globalPosition);
                }
            }
            break;

        case (TouchPhase.Stationary):
        case (TouchPhase.Moved):
            if (touchState == GlobalTouchState.ONE_FINGER_STATIONARY)
            {
                if (isMouseWithinCameraRect())
                {
                    if (CanvasController.events.onTouchStart != null)
                    {
                        CanvasController.events.onTouchStart(pixelPosition, globalPosition);
                    }
                    lastPixelPosition = new IntVector2(pixelPosition);
                    lastWithinCamArea = true;
                }
            }

            if (isMouseWithinCameraRect())
            {
                if (lastWithinCamArea)
                {
                    if (CanvasController.events.onTouchOver != null)
                    {
                        CanvasController.events.onTouchOver(pixelPosition, globalPosition);
                    }
                }
                else
                {
                    if (CanvasController.events.onTouchStart != null)
                    {
                        CanvasController.events.onTouchStart(pixelPosition, globalPosition);
                    }
                    lastWithinCamArea = true;
                }
                lastPixelPosition = new IntVector2(pixelPosition);
            }
            else
            {
                if (lastWithinCamArea)
                {
                    finalizeTouch();
                }
            }
            touchState = GlobalTouchState.ONE_FINGER;
            break;

        case (TouchPhase.Canceled):
        case (TouchPhase.Ended):
            finalizeTouch();
            break;
        }
    }