Exemple #1
0
    void setupRecognizers()
    {
        // left button
        _leftRecognizer = new TKAnyTouchRecognizer(new TKRect(0f, 0f, buttonWidth, buttonHeight));
        TouchKit.addGestureRecognizer(_leftRecognizer);


        // right button
        _rightRecognizer = new TKAnyTouchRecognizer(new TKRect(buttonWidth + 1f, 0f, buttonWidth, buttonHeight));
        TouchKit.addGestureRecognizer(_rightRecognizer);


        // up button. we place it 70% of the way up the other two buttons allowing some overlap
        _upRecognizer = new TKAnyTouchRecognizer(new TKRect(0f, buttonHeight * 0.7f, buttonWidth * 2f + 1f, 20f));
        TouchKit.addGestureRecognizer(_upRecognizer);


        // attack button. we use the onSelectedEvent here because we only want to know the exact frame it was pressed
        _attackRecognizer = new TKButtonRecognizer(new TKRect(TouchKit.instance.designTimeResolution.x - buttonWidth * 2f, 0, buttonWidth, buttonHeight), 0f);
        _attackRecognizer.onSelectedEvent += (r) =>
        {
            attackDown = true;
        };
        TouchKit.addGestureRecognizer(_attackRecognizer);


        // jump button
        _jumpRecognizer = new TKButtonRecognizer(new TKRect(TouchKit.instance.designTimeResolution.x - buttonWidth, 0, buttonWidth, buttonHeight), 0f);
        TouchKit.addGestureRecognizer(_jumpRecognizer);
    }
Exemple #2
0
    public void OnDrawLineEnd(TKButtonRecognizer t)
    {
        if (lineEditMode == LineEditMode.Camera || lineEditMode == LineEditMode.Erase)
        {
            return;
        }

        if (lineDrawState != LineDrawState.Start)
        {
            return;
        }

        linePos2      = t.touchLocation();
        lineDrawState = LineDrawState.None;

        if ((linePos1 - linePos2).magnitude <= 10)
        {
            return;
        }

        linePos1 = Camera.main.ScreenToWorldPoint(linePos1);
        linePos2 = Camera.main.ScreenToWorldPoint(linePos2);

        LineWorld.main.AddLine(linePos1, linePos2, lineType);
    }
Exemple #3
0
    void setReconizers(bool b)
    {
        if (DebugTouches)
            Debug.Log(b ? "Adding Reconziers" : "Removing Reconziers");

        if (!b && !eventActive)
        {
            eventActive = false;
            TouchKit.removeAllGestureRecognizers();
            return;
        }
        if (eventActive)
            return;

        eventActive = true;
        //TKSwipeRecognizer r1 = new TKSwipeRecognizer(TKSwipeDirection.Up);
        //r1.gestureRecognizedEvent += (r) =>
        //{
        //    if (DebugTouches)
        //        Debug.Log("swipe recognizer fired: " + r);

        //    if (onSwipeUp != null)
        //        onSwipeUp();
        //};
        //TouchKit.addGestureRecognizer(r1);

        TKButtonRecognizer r3 = new TKButtonRecognizer(new TKRect(100, 180, new Vector2(50,65)),0);
        
        r3.onTouchUpInsideEvent += (r) =>
        {
            if (DebugTouches)
                Debug.Log("Button recognizer fired: " + r);

            if (onSwipeUp != null)
                onSwipeUp();
        };
        
        TouchKit.addGestureRecognizer(r3);

        

        TKTapRecognizer r2 = new TKTapRecognizer();

        // we can limit recognition to a specific Rect, in this case the bottom-left corner of the screen

        r2.gestureRecognizedEvent += (r) =>
        {
            if (DebugTouches)
                Debug.Log("tap recognizer fired: " + r);

            if (onTap != null)
                onTap(r.touchLocation());
        };
        TouchKit.addGestureRecognizer(r2);
    }
Exemple #4
0
    public void OnDrawLineStart(TKButtonRecognizer t)
    {
        if (lineEditMode == LineEditMode.Camera || lineEditMode == LineEditMode.Erase)
        {
            return;
        }


        if (lineDrawState != LineDrawState.Start)
        {
            lineDrawState = LineDrawState.Start;
            linePos1      = t.touchLocation();
            return;
        }
    }
Exemple #5
0
    private Vector2 _scrollPosition;     // for the scroll view


    void OnGUI()
    {
        GUI.skin.button.padding    = new RectOffset(10, 10, 20, 20);
        GUI.skin.button.fixedWidth = 250;


        GUILayout.BeginArea(new Rect(Screen.width - GUI.skin.button.fixedWidth - 20, 0, GUI.skin.button.fixedWidth + 20, Screen.height));
        _scrollPosition = GUILayout.BeginScrollView(_scrollPosition, GUILayout.Width(GUI.skin.button.fixedWidth + 20), GUILayout.Height(Screen.height));

        if (GUILayout.Button("Add Curve Recognizer"))
        {
            var recognizer = new TKCurveRecognizer();

            recognizer.gestureRecognizedEvent += (r) => {
                cube.Rotate(Vector3.back, recognizer.deltaRotation);
                Debug.Log("curve recognizer fired: " + r);
            };

            recognizer.gestureCompleteEvent += (r) => {
                Debug.Log("curve completed.");
            };

            TouchKit.addGestureRecognizer(recognizer);
        }

        if (GUILayout.Button("Add Tap Recognizer"))
        {
            var recognizer = new TKTapRecognizer();

            // we can limit recognition to a specific Rect, in this case the bottom-left corner of the screen
            recognizer.boundaryFrame = new TKRect(0, 0, 50f, 50f);

            // we can also set the number of touches required for the gesture
            if (Application.platform == RuntimePlatform.IPhonePlayer)
            {
                recognizer.numberOfTouchesRequired = 2;
            }

            recognizer.gestureRecognizedEvent += (r) =>
            {
                Debug.Log("tap recognizer fired: " + r);
            };
            TouchKit.addGestureRecognizer(recognizer);
        }


        if (GUILayout.Button("Add Long Press Recognizer"))
        {
            var recognizer = new TKLongPressRecognizer();
            recognizer.gestureRecognizedEvent += (r) =>
            {
                Debug.Log("long press recognizer fired: " + r);
            };
            recognizer.gestureCompleteEvent += (r) =>
            {
                Debug.Log("long press recognizer finished: " + r);
            };
            TouchKit.addGestureRecognizer(recognizer);
        }


        if (GUILayout.Button("Add Pan Recognizer"))
        {
            var recognizer = new TKPanRecognizer();

            // when using in conjunction with a pinch or rotation recognizer setting the min touches to 2 smoothes movement greatly
            if (Application.platform == RuntimePlatform.IPhonePlayer)
            {
                recognizer.minimumNumberOfTouches = 2;
            }

            recognizer.gestureRecognizedEvent += (r) =>
            {
                Camera.main.transform.position -= new Vector3(recognizer.deltaTranslation.x, recognizer.deltaTranslation.y) / 100;
                Debug.Log("pan recognizer fired: " + r);
            };

            // continuous gestures have a complete event so that we know when they are done recognizing
            recognizer.gestureCompleteEvent += r =>
            {
                Debug.Log("pan gesture complete");
            };
            TouchKit.addGestureRecognizer(recognizer);
        }


        if (GUILayout.Button("Add Horizontal Swipe Recognizer"))
        {
            var recognizer = new TKSwipeRecognizer(TKSwipeDirection.Horizontal);
            recognizer.gestureRecognizedEvent += (r) =>
            {
                Debug.Log("swipe recognizer fired: " + r);
            };
            TouchKit.addGestureRecognizer(recognizer);
        }


        if (GUILayout.Button("Add Pinch Recognizer"))
        {
            var recognizer = new TKPinchRecognizer();
            recognizer.gestureRecognizedEvent += (r) =>
            {
                cube.transform.localScale += Vector3.one * recognizer.deltaScale;
                Debug.Log("pinch recognizer fired: " + r);
            };
            TouchKit.addGestureRecognizer(recognizer);
        }


        if (GUILayout.Button("Add Rotation Recognizer"))
        {
            var recognizer = new TKRotationRecognizer();
            recognizer.gestureRecognizedEvent += (r) =>
            {
                cube.Rotate(Vector3.back, recognizer.deltaRotation);
                Debug.Log("rotation recognizer fired: " + r);
            };
            TouchKit.addGestureRecognizer(recognizer);
        }


        if (GUILayout.Button("Add Button Recognizer"))
        {
            var recognizer = new TKButtonRecognizer(new TKRect(5f, 145f, 80f, 30f), 10f);
            recognizer.zIndex           = 1;
            recognizer.onSelectedEvent += (r) =>
            {
                Debug.Log("button recognizer selected: " + r);
            };
            recognizer.onDeselectedEvent += (r) =>
            {
                Debug.Log("button recognizer deselected: " + r);
            };
            recognizer.onTouchUpInsideEvent += (r) =>
            {
                Debug.Log("button recognizer touch up inside: " + r);
            };
            TouchKit.addGestureRecognizer(recognizer);
        }


        if (GUILayout.Button("Add One Finger Rotation Recognizer"))
        {
            var recognizer = new TKOneFingerRotationRecognizer();
            recognizer.targetPosition          = Camera.main.WorldToScreenPoint(cube.position);
            recognizer.gestureRecognizedEvent += (r) =>
            {
                cube.Rotate(Vector3.back, recognizer.deltaRotation);
                Debug.Log("one finger rotation recognizer fired: " + r);
            };
            TouchKit.addGestureRecognizer(recognizer);
        }


        if (GUILayout.Button("Add Any Touch Recognizer"))
        {
            var recognizer = new TKAnyTouchRecognizer(new TKRect(10, 10, 80, 50));
            recognizer.zIndex          = 1;
            recognizer.onEnteredEvent += (r) =>
            {
                Debug.Log("any touch entered: " + r);
            };
            recognizer.onExitedEvent += (r) =>
            {
                Debug.Log("any touch exited: " + r);
            };
            TouchKit.addGestureRecognizer(recognizer);
        }


        if (GUILayout.Button("Remove All Recognizers"))
        {
            TouchKit.removeAllGestureRecognizers();
        }


        GUILayout.EndScrollView();
        GUILayout.EndArea();
    }
    private Vector2 _scrollPosition; // for the scroll view

    #endregion Fields

    #region Methods

    void OnGUI()
    {
        GUI.skin.button.padding = new RectOffset( 10, 10, 20, 20 );
        GUI.skin.button.fixedWidth = 250;

        GUILayout.BeginArea( new Rect( Screen.width - GUI.skin.button.fixedWidth - 20, 0, GUI.skin.button.fixedWidth + 20, Screen.height ) );
            _scrollPosition = GUILayout.BeginScrollView( _scrollPosition, GUILayout.Width( GUI.skin.button.fixedWidth + 20 ), GUILayout.Height( Screen.height ) );

        if( GUILayout.Button( "Add Tap Recognizer" ) )
        {
            var recognizer = new TKTapRecognizer();

            // we can limit recognition to a specific Rect, in this case the bottom-left corner of the screen
            recognizer.boundaryFrame = new TKRect( 0, 0, 50f, 50f );

            // we can also set the number of touches required for the gesture
            if( Application.platform == RuntimePlatform.IPhonePlayer )
                recognizer.numberOfTouchesRequired = 2;

            recognizer.gestureRecognizedEvent += ( r ) =>
            {
                Debug.Log( "tap recognizer fired: " + r );
            };
            TouchKit.addGestureRecognizer( recognizer );
        }

        if( GUILayout.Button( "Add Long Press Recognizer" ) )
        {
            var recognizer = new TKLongPressRecognizer();
            recognizer.gestureRecognizedEvent += ( r ) =>
            {
                Debug.Log( "long press recognizer fired: " + r );
            };
            recognizer.gestureCompleteEvent += ( r ) =>
            {
                Debug.Log( "long press recognizer finished: " + r );
            };
            TouchKit.addGestureRecognizer( recognizer );
        }

        if( GUILayout.Button( "Add Pan Recognizer" ) )
        {
            var recognizer = new TKPanRecognizer();

            // when using in conjunction with a pinch or rotation recognizer setting the min touches to 2 smoothes movement greatly
            if( Application.platform == RuntimePlatform.IPhonePlayer )
                recognizer.minimumNumberOfTouches = 2;

            recognizer.gestureRecognizedEvent += ( r ) =>
            {
                Camera.main.transform.position -= new Vector3( recognizer.deltaTranslation.x, recognizer.deltaTranslation.y ) / 100;
                Debug.Log( "pan recognizer fired: " + r );
            };

            // continuous gestures have a complete event so that we know when they are done recognizing
            recognizer.gestureCompleteEvent += r =>
            {
                Debug.Log( "pan gesture complete" );
            };
            TouchKit.addGestureRecognizer( recognizer );
        }

        if( GUILayout.Button( "Add TouchPad Recognizer" ) )
        {
            var recognizer = new TKTouchPadRecognizer( new TKRect( 0f, 50f, 80f, 50f ) );
            recognizer.inputCurve = touchPadInputCurve;

            recognizer.gestureRecognizedEvent += ( r ) =>
            {
                //Camera.main.transform.position -= new Vector3( recognizer.deltaTranslation.x, recognizer.deltaTranslation.y ) / 100;
                Debug.Log( "touchpad recognizer fired: " + r );
            };

            // continuous gestures have a complete event so that we know when they are done recognizing
            recognizer.gestureCompleteEvent += r =>
            {
                Debug.Log( "touchpad gesture complete" );
            };
            TouchKit.addGestureRecognizer( recognizer );
        }

        if( GUILayout.Button( "Add Horizontal Swipe Recognizer" ) )
        {
            var recognizer = new TKSwipeRecognizer();
            recognizer.gestureRecognizedEvent += ( r ) =>
            {
                Debug.Log( "swipe recognizer fired: " + r );
            };
            TouchKit.addGestureRecognizer( recognizer );
        }

        if( GUILayout.Button( "Add Top-Right Swipe Recognizer" ) )
        {
            var recognizer = new TKAngleSwipeRecognizer();
            recognizer.addAngleRecogizedEvents (
                (TKAngleSwipeRecognizer r) => {
                    Debug.Log( "Top-Right angle swipe fired " + r );
                }, new Vector2(1,1), 45);

            recognizer.gestureRecognizedEvent += r => {
                // You can also do ordinary event, which fires at any angle
                // Debug.Log( "angle swipe recognizer fired: " + r );
            };
            TouchKit.addGestureRecognizer( recognizer );
        }

        if( GUILayout.Button( "Add Pinch Recognizer" ) )
        {
            var recognizer = new TKPinchRecognizer();
            recognizer.gestureRecognizedEvent += ( r ) =>
            {
                cube.transform.localScale += Vector3.one * recognizer.deltaScale;
                Debug.Log( "pinch recognizer fired: " + r );
            };
            TouchKit.addGestureRecognizer( recognizer );
        }

        if( GUILayout.Button( "Add Rotation Recognizer" ) )
        {
            var recognizer = new TKRotationRecognizer();
            recognizer.gestureRecognizedEvent += ( r ) =>
            {
                cube.Rotate( Vector3.back, recognizer.deltaRotation );
                Debug.Log( "rotation recognizer fired: " + r );
            };
            TouchKit.addGestureRecognizer( recognizer );
        }

        if( GUILayout.Button( "Add Button Recognizer" ) )
        {
            var recognizer = new TKButtonRecognizer( new TKRect( 5f, 145f, 80f, 30f ), 10f );
            recognizer.zIndex = 1;
            recognizer.onSelectedEvent += ( r ) =>
            {
                Debug.Log( "button recognizer selected: " + r );
            };
            recognizer.onDeselectedEvent += ( r ) =>
            {
                Debug.Log( "button recognizer deselected: " + r );
            };
            recognizer.onTouchUpInsideEvent += ( r ) =>
            {
                Debug.Log( "button recognizer touch up inside: " + r );
            };
            TouchKit.addGestureRecognizer( recognizer );
        }

        if( GUILayout.Button( "Add One Finger Rotation Recognizer" ) )
        {
            var recognizer = new TKOneFingerRotationRecognizer();
            recognizer.targetPosition = Camera.main.WorldToScreenPoint( cube.position );
            recognizer.gestureRecognizedEvent += ( r ) =>
            {
                cube.Rotate( Vector3.back, recognizer.deltaRotation );
                Debug.Log( "one finger rotation recognizer fired: " + r );
            };
            TouchKit.addGestureRecognizer( recognizer );
        }

        if( GUILayout.Button( "Add Any Touch Recognizer" ) )
        {
            var recognizer = new TKAnyTouchRecognizer( new TKRect( 10, 10, 80, 50 ) );
            recognizer.zIndex = 1;
            recognizer.onEnteredEvent += ( r ) =>
            {
                Debug.Log( "any touch entered: " + r );
            };
            recognizer.onExitedEvent += ( r ) =>
            {
                Debug.Log( "any touch exited: " + r );
            };
            TouchKit.addGestureRecognizer( recognizer );
        }

        if( GUILayout.Button( "Add Curve Recognizer" ) )
        {
            var recognizer = new TKCurveRecognizer();

            recognizer.gestureRecognizedEvent += ( r ) =>
            {
                cube.Rotate( Vector3.back, recognizer.deltaRotation );
                Debug.Log( "curve recognizer fired: " + r );
            };

            recognizer.gestureCompleteEvent += ( r ) =>
            {
                Debug.Log( "curve completed.");
            };

            TouchKit.addGestureRecognizer( recognizer );
        }

        if( GUILayout.Button( "Remove All Recognizers" ) )
        {
            TouchKit.removeAllGestureRecognizers();
        }

            GUILayout.EndScrollView();
        GUILayout.EndArea();
    }
	void setupRecognizers()
	{
		// left button
		_leftRecognizer = new TKAnyTouchRecognizer( new TKRect( 0f, 0f, buttonWidth, buttonHeight ) );
		TouchKit.addGestureRecognizer( _leftRecognizer );


		// right button
		_rightRecognizer = new TKAnyTouchRecognizer( new TKRect( buttonWidth + 1f, 0f, buttonWidth, buttonHeight ) );
		TouchKit.addGestureRecognizer( _rightRecognizer );


		// up button. we place it 70% of the way up the other two buttons allowing some overlap
		_upRecognizer = new TKAnyTouchRecognizer( new TKRect( 0f, buttonHeight * 0.7f, buttonWidth * 2f + 1f, 20f ) );
		TouchKit.addGestureRecognizer( _upRecognizer );


		// attack button. we use the onSelectedEvent here because we only want to know the exact frame it was pressed
		_attackRecognizer = new TKButtonRecognizer( new TKRect( TouchKit.instance.designTimeResolution.x - buttonWidth * 2f, 0, buttonWidth, buttonHeight ), 0f );
		_attackRecognizer.onSelectedEvent += ( r ) =>
		{
			attackDown = true;
		};
		TouchKit.addGestureRecognizer( _attackRecognizer );


		// jump button
		_jumpRecognizer = new TKButtonRecognizer( new TKRect( TouchKit.instance.designTimeResolution.x - buttonWidth, 0, buttonWidth, buttonHeight ), 0f );
		TouchKit.addGestureRecognizer( _jumpRecognizer );
	}
Exemple #8
0
    private Vector2 _scrollPosition; // for the scroll view

    #endregion Fields

    #region Methods

    void OnGUI()
    {
        //GUI.matrix = Matrix4x4.Scale( new Vector3( 1.5f, 1.5f, 1.5f ) );
        GUI.skin.button.padding = new RectOffset( 10, 10, 20, 20 );
        GUI.skin.button.fixedWidth = 250;

        GUILayout.BeginArea( new Rect( Screen.width - GUI.skin.button.fixedWidth - 20, 0, GUI.skin.button.fixedWidth + 20, Screen.height ) );
            _scrollPosition = GUILayout.BeginScrollView( _scrollPosition, GUILayout.Width( GUI.skin.button.fixedWidth + 20 ), GUILayout.Height( Screen.height ) );

        if( GUILayout.Button( "Add Tap Recognizer" ) )
        {
            var recognizer = new TKTapRecognizer();

            // we can limit recognition to a specific Rect, in this case the bottom-left corner of the screen
            recognizer.boundaryFrame = new TKRect( 50, 50, 400, 400 );

            // we can also set the number of touches required for the gesture
            if( Application.platform == RuntimePlatform.IPhonePlayer )
                recognizer.numberOfTouchesRequired = 2;

            recognizer.gestureRecognizedEvent += ( r ) =>
            {
                Debug.Log( "tap recognizer fired: " + r );
            };
            TouchKit.addGestureRecognizer( recognizer );
        }

        if( GUILayout.Button( "Add Long Press Recognizer" ) )
        {
            var recognizer = new TKLongPressRecognizer();
            recognizer.gestureRecognizedEvent += ( r ) =>
            {
                Debug.Log( "long press recognizer fired: " + r );
            };
            recognizer.gestureCompleteEvent += ( r ) =>
            {
                Debug.Log( "long press recognizer finished: " + r );
            };
            TouchKit.addGestureRecognizer( recognizer );
        }

        if( GUILayout.Button( "Add Pan Recognizer" ) )
        {
            var recognizer = new TKPanRecognizer();

            // when using in conjunction with a pinch or rotation recognizer setting the min touches to 2 smoothes movement greatly
            if( Application.platform == RuntimePlatform.IPhonePlayer )
                recognizer.minimumNumberOfTouches = 2;

            recognizer.gestureRecognizedEvent += ( r ) =>
            {
                Camera.mainCamera.transform.position -= new Vector3( recognizer.deltaTranslation.x, recognizer.deltaTranslation.y ) / 100;
                Debug.Log( "pan recognizer fired: " + r );
            };

            // continuous gestures have a complete event so that we know when they are done recognizing
            recognizer.gestureCompleteEvent += r =>
            {
                Debug.Log( "pan gesture complete" );
            };
            TouchKit.addGestureRecognizer( recognizer );
        }

        if( GUILayout.Button( "Add Horizontal Swipe Recognizer" ) )
        {
            var recognizer = new TKSwipeRecognizer( TKSwipeDirection.Horizontal );
            recognizer.gestureRecognizedEvent += ( r ) =>
            {
                Debug.Log( "swipe recognizer fired: " + r );
            };
            TouchKit.addGestureRecognizer( recognizer );
        }

        if( GUILayout.Button( "Add Pinch Recognizer" ) )
        {
            var recognizer = new TKPinchRecognizer();
            recognizer.gestureRecognizedEvent += ( r ) =>
            {
                cube.transform.localScale += Vector3.one * recognizer.deltaScale;
                Debug.Log( "pinch recognizer fired: " + r );
            };
            TouchKit.addGestureRecognizer( recognizer );
        }

        if( GUILayout.Button( "Add Rotation Recognizer" ) )
        {
            var recognizer = new TKRotationRecognizer();
            recognizer.gestureRecognizedEvent += ( r ) =>
            {
                cube.Rotate( Vector3.back, recognizer.deltaRotation );
                Debug.Log( "rotation recognizer fired: " + r );
            };
            TouchKit.addGestureRecognizer( recognizer );
        }

        if( GUILayout.Button( "Add Button Recognizer" ) )
        {
            var recognizer = new TKButtonRecognizer( new TKRect( 300, 30, 278, 90 ), 20 );
            recognizer.zIndex = 1;
            recognizer.onSelectedEvent += ( r ) =>
            {
                Debug.Log( "button recognizer selected: " + r );
            };
            recognizer.onDeselectedEvent += ( r ) =>
            {
                Debug.Log( "button recognizer deselected: " + r );
            };
            recognizer.onTouchUpInsideEvent += ( r ) =>
            {
                Debug.Log( "button recognizer touch up inside: " + r );
            };
            TouchKit.addGestureRecognizer( recognizer );
        }

        if( GUILayout.Button( "Add One Finger Rotation Recognizer" ) )
        {
            var recognizer = new TKOneFingerRotationRecognizer();
            recognizer.targetPosition = Camera.mainCamera.WorldToScreenPoint( cube.position );
            recognizer.gestureRecognizedEvent += ( r ) =>
            {
                cube.Rotate( Vector3.back, recognizer.deltaRotation );
                Debug.Log( "one finger rotation recognizer fired: " + r );
            };
            TouchKit.addGestureRecognizer( recognizer );
        }

        if( GUILayout.Button( "Remove All Recognizers" ) )
        {
            TouchKit.removeAllGestureRecognizers();
        }

            GUILayout.EndScrollView();
        GUILayout.EndArea();
    }
Exemple #9
0
    public void SetInputSystem()
    {
        TouchKit.removeAllGestureRecognizers();

        if (PlaybackManager.isPlaying == PlaybackManager.PlayStates.Playing)
        {
            return;
        }

        if (lineEditMode == LineEditMode.Camera)
        {
            //pan camera
            var panRecognizer = new TKPanRecognizer();
            panRecognizer.gestureRecognizedEvent += (r) =>
            {
                OnPanCamera(r);
            };
            TouchKit.addGestureRecognizer(panRecognizer);

            //pinch zoom
            var pinchRecognizer = new TKPinchRecognizer();
            pinchRecognizer.gestureRecognizedEvent += (r) =>
            {
                OnZoomCamera(r);
            };
            TouchKit.addGestureRecognizer(pinchRecognizer);
        }
        else if (lineEditMode == LineEditMode.Erase)
        {
            //eraser
            var tapRecognizer = new TKTapRecognizer();
            tapRecognizer.zIndex = 2;
            tapRecognizer.numberOfTapsRequired    = 1;
            tapRecognizer.gestureRecognizedEvent += (r) =>
            {
                print(r);
                Erase(r);
            };
            TouchKit.addGestureRecognizer(tapRecognizer);
        }
        else
        {
            //draw
            var drawRecognizer = new TKButtonRecognizer(new TKRect(0, 0, Screen.width, Screen.height));
            drawRecognizer.zIndex           = 0;
            drawRecognizer.onSelectedEvent += (r) =>
            {
                OnDrawLineStart(r);
            };
            drawRecognizer.onTouchUpInsideEvent += (r) =>
            {
                OnDrawLineEnd(r);
            };
            TouchKit.addGestureRecognizer(drawRecognizer);

            switch (lineEditMode)
            {
            case LineEditMode.DrawAccelerator:
                lineType = LineType.LineTypes.Accelerator;
                break;

            case LineEditMode.DrawBounce:
                lineType = LineType.LineTypes.Bounce;
                break;

            case LineEditMode.DrawBrake:
                lineType = LineType.LineTypes.Brake;
                break;

            case LineEditMode.DrawNormal:
                lineType = LineType.LineTypes.Normal;
                break;
            }
        }
    }