void StartJoystickResize( TouchInputLayout.TrackerPrefabBasePrefabPair tracker, Vector2 currentPos, ResizeSide side)
        {
            if (!_isResizing)
            {
                _modifyStartPos = currentPos;

                _rectStartOfDrag = tracker._tracker.activeRegion;
                _resizeSide = side;
                trackerBeingModified = tracker;
            }

            _isResizing = true;
        }
        void StartJoystickMove(TouchInputLayout.TrackerPrefabBasePrefabPair tracker, Vector2 currentPos)
        {
            if(!_isDragging)
            {
                _modifyStartPos = currentPos;
                _rectStartOfDrag = tracker._tracker.activeRegion;
                trackerBeingModified = tracker;
            }

            _isDragging = true;
        }
        void ResizableDraggableJoystick(TouchInputLayout.TrackerPrefabBasePrefabPair toResize, Rect drawnArea, Rect fullArea)
        {
            Rect resizePosLeft = new Rect(drawnArea.xMin, drawnArea.yMin + 8, 8, drawnArea.height - 16);
            EditorGUIUtility.AddCursorRect(resizePosLeft, MouseCursor.ResizeHorizontal);

            Rect resizePosRight = new Rect(drawnArea.xMax - 8, drawnArea.yMin + 8, 8, drawnArea.height - 16);
            EditorGUIUtility.AddCursorRect(resizePosRight, MouseCursor.ResizeHorizontal);

            Rect resizePosTop = new Rect(drawnArea.xMin + 8, drawnArea.yMin, drawnArea.width - 16, 8);
            EditorGUIUtility.AddCursorRect(resizePosTop, MouseCursor.ResizeVertical);

            Rect resizePosBottom = new Rect(drawnArea.xMin + 8, drawnArea.yMax - 8, drawnArea.width - 16, 8);
            EditorGUIUtility.AddCursorRect(resizePosBottom, MouseCursor.ResizeVertical);

            Rect dragZone = new Rect(drawnArea.xMin + 10, drawnArea.yMin + 10, drawnArea.width - 20, 15);
            EditorGUIUtility.AddCursorRect(dragZone, MouseCursor.MoveArrow);

            if (Event.current != null)
            {
                if (Event.current.isMouse)
                {
                    _currentPos = Event.current.mousePosition;
                    _currentPos.x -= fullArea.x;
                    _currentPos.x /= (fullArea.width);
                    _currentPos.y -= (16);
                    _currentPos.y /= (fullArea.height - (16));
                }

                if (Event.current.rawType == EventType.MouseDown)
                {
                    if (dragZone.Contains(Event.current.mousePosition))
                    {
                        trackerBeingModified = toResize;
                        StartJoystickMove(toResize,_currentPos);
                        Event.current.Use();
                    }
                    else if (resizePosLeft.Contains(Event.current.mousePosition))
                    {
                        trackerBeingModified = toResize;
                        StartJoystickResize(toResize,_currentPos,ResizeSide.Left);
                        Event.current.Use();
                    }
                    else if (resizePosRight.Contains(Event.current.mousePosition))
                    {
                        trackerBeingModified = toResize;
                        StartJoystickResize(toResize,_currentPos,ResizeSide.Right);
                        Event.current.Use();
                    }
                    else if (resizePosTop.Contains(Event.current.mousePosition))
                    {
                        trackerBeingModified = toResize;
                        StartJoystickResize(toResize,_currentPos,ResizeSide.Top);
                        Event.current.Use();
                    }
                    else if (resizePosBottom.Contains(Event.current.mousePosition))
                    {
                        trackerBeingModified = toResize;
                        StartJoystickResize(toResize,_currentPos,ResizeSide.Bottom);
                        Event.current.Use();
                    }

                }
                else if (Event.current.rawType == EventType.mouseUp && trackerBeingModified != null)
                {
                    _isResizing = false;
                    _isDragging = false;
                    trackerBeingModified = null;
                    Event.current.Use();
                }

            }
        }