public bool Move(Vector2 currentMousePosition)
        {
            var distanceOnLine = SceneHandleUtility.CalcLineTranslation(this.startMousePosition, currentMousePosition, this.slideStart, this.slideDirection);

            if (distanceOnLine == 0)
            {
                return(false);
            }

            var delta = this.slideDirection * distanceOnLine;

            if (delta.sqrMagnitude == 0)
            {
                return(false);
            }


            this.slidePosition = this.slideOrigin + delta;

            var newSnappedPosition = this.slidePosition;

            newSnappedPosition = SnapExtents1D(newSnappedPosition);
            newSnappedPosition = SnappingUtility.PerformAxisLocking(this.slidePosition, newSnappedPosition, slideAxis);

            if ((this.snappedPosition - newSnappedPosition).sqrMagnitude == 0)
            {
                return(false);
            }

            this.snappedPosition = newSnappedPosition;
            return(true);
        }
Пример #2
0
        public bool Move(Vector2 currentMousePosition)
        {
            var distanceOnLine = SceneHandleUtility.CalcLineTranslation(this.startMousePosition, currentMousePosition, this.slideOrigin, this.slideDirection);

            if (distanceOnLine == 0)
            {
                return(false);
            }

            var delta = this.slideDirection * distanceOnLine;

            if (delta.sqrMagnitude == 0)
            {
                return(false);
            }


            this.slidePosition = this.slideOrigin + delta;

            var newSnappedPosition = this.slidePosition;

            //if (Snapping.BoundsSnappingActive)
            newSnappedPosition = SnapExtents1D(this.slideExtents, newSnappedPosition, this.slideOrigin, this.slideDirection, this.snappingStep, out this.snapResult);
            //else
            //	this.snapResult = SnapResult1D.None;

            newSnappedPosition = SnappingUtility.PerformAxisLocking(this.slidePosition, newSnappedPosition, slideAxis);

            if ((this.snappedPosition - newSnappedPosition).sqrMagnitude == 0)
            {
                return(false);
            }

            this.snappedPosition = newSnappedPosition;
            return(true);
        }