Exemplo n.º 1
0
 public override void TouchBegan(Touch touch)
 {
     if (!IsActive)
     {
         beganPosition = TouchManager.ScreenToWorldPoint(touch.position);
         bool flag  = worldActiveArea.Contains(beganPosition);
         bool flag2 = ring.Contains(beganPosition);
         if (snapToInitialTouch && (flag || flag2))
         {
             RingPosition = beganPosition;
             KnobPosition = beganPosition;
             currentTouch = touch;
         }
         else if (flag2)
         {
             KnobPosition  = beganPosition;
             beganPosition = RingPosition;
             currentTouch  = touch;
         }
         if (IsActive)
         {
             TouchMoved(touch);
             ring.State = true;
             knob.State = true;
         }
     }
 }
Exemplo n.º 2
0
        public override void TouchMoved(Touch touch)
        {
            if (currentTouch != touch)
            {
                return;
            }

            var movedPosition = TouchManager.ScreenToWorldPoint(touch.position);
            var delta         = movedPosition - lastPosition;

            if (delta.magnitude >= sensitivity)
            {
                lastPosition  = movedPosition;
                currentVector = delta.normalized;

                if (fireButtonTarget)
                {
                    var thisButtonTarget = GetButtonTargetForVector(currentVector);
                    if (thisButtonTarget != lastButtonTarget)
                    {
                        nextButtonTarget = thisButtonTarget;
                    }
                }
            }
        }
        public override void TouchMoved(Touch touch)
        {
            if (currentTouch != touch)
            {
                return;
            }

            movedPosition = TouchManager.ScreenToWorldPoint(touch.position);

            var vector = movedPosition - beganPosition;
            var normal = vector.normalized;
            var length = vector.magnitude;

            if (allowDragging)
            {
                var excess = length - worldKnobRange;
                if (excess < 0.0f)
                {
                    excess = 0.0f;
                }
                beganPosition = beganPosition + (excess * normal);
                RingPosition  = beganPosition;
            }

            movedPosition = beganPosition + (Mathf.Clamp(length, 0.0f, worldKnobRange) * normal);

            value   = (movedPosition - beganPosition) / worldKnobRange;
            value.x = inputCurve.Evaluate(Utility.Abs(value.x)) * Mathf.Sign(value.x);
            value.y = inputCurve.Evaluate(Utility.Abs(value.y)) * Mathf.Sign(value.y);

            KnobPosition = movedPosition;
            RingPosition = beganPosition;
        }
Exemplo n.º 4
0
        public override void TouchEnded(Touch touch)
        {
            if (currentTouch != touch)
            {
                return;
            }

            currentTouch  = null;
            currentVector = Vector2.zero;

            var touchPosition = TouchManager.ScreenToWorldPoint(touch.position);
            var delta         = beganPosition - touchPosition;

            if (delta.magnitude < sensitivity)
            {
                fireButtonTarget = true;
                nextButtonTarget = tapTarget;
                lastButtonTarget = ButtonTarget.None;
                return;
            }

            fireButtonTarget = false;
            nextButtonTarget = ButtonTarget.None;
            lastButtonTarget = ButtonTarget.None;
        }
        public override void TouchBegan(Touch touch)
        {
            if (IsActive)
            {
                return;
            }

            beganPosition = TouchManager.ScreenToWorldPoint(touch.position);

            var insideActiveArea = worldActiveArea.Contains(beganPosition);
            var insideControl    = ring.Contains(beganPosition);

            if (snapToInitialTouch && (insideActiveArea || insideControl))
            {
                RingPosition = beganPosition;
                KnobPosition = beganPosition;
                currentTouch = touch;
            }
            else
            if (insideControl)
            {
                KnobPosition  = beganPosition;
                beganPosition = RingPosition;
                currentTouch  = touch;
            }

            if (IsActive)
            {
                TouchMoved(touch);

                ring.State = true;
                knob.State = true;
            }
        }
        public override void TouchMoved(Touch touch)
        {
            if (currentTouch != touch)
            {
                return;
            }
            Vector3 a      = TouchManager.ScreenToWorldPoint(touch.position);
            Vector3 vector = a - lastPosition;

            if (!(vector.magnitude >= sensitivity))
            {
                return;
            }
            lastPosition = a;
            if (!oneSwipePerTouch || !currentVectorIsSet)
            {
                currentVector      = vector.normalized;
                currentVectorIsSet = true;
            }
            if (fireButtonTarget)
            {
                ButtonTarget buttonTargetForVector = GetButtonTargetForVector(currentVector);
                if (buttonTargetForVector != lastButtonTarget)
                {
                    nextButtonTarget = buttonTargetForVector;
                }
            }
        }
Exemplo n.º 7
0
        public override void TouchMoved(Touch touch)
        {
            if (currentTouch != touch)
            {
                return;
            }

            movedPosition = TouchManager.ScreenToWorldPoint(touch.position);

            var vector = movedPosition - beganPosition;
            var normal = vector.normalized;
            var length = vector.magnitude;

            if (allowDragging)
            {
                var excess = length - worldKnobRange;
                if (excess < 0.0f)
                {
                    excess = 0.0f;
                }
                beganPosition = beganPosition + (excess * normal);
                RingPosition  = beganPosition;
            }

            movedPosition = beganPosition + (Mathf.Clamp(length, 0.0f, worldKnobRange) * normal);

            value   = (movedPosition - beganPosition) / worldKnobRange;
            value.x = inputCurve.Evaluate(Utility.Abs(value.x)) * Mathf.Sign(value.x);
            value.y = inputCurve.Evaluate(Utility.Abs(value.y)) * Mathf.Sign(value.y);

            if (snapAngles == SnapAngles.None)
            {
                snappedValue = value;

                if (lockToAxis == LockAxis.Horizontal)
                {
                    snappedValue.y = 0.0f;
                    KnobPosition   = beganPosition + (snappedValue * worldKnobRange);
                }
                else
                if (lockToAxis == LockAxis.Vertical)
                {
                    snappedValue.x = 0.0f;
                    KnobPosition   = beganPosition + (snappedValue * worldKnobRange);
                }
                else
                {
                    KnobPosition = movedPosition;
                }
            }
            else
            {
                snappedValue = SnapTo(value, snapAngles);
                KnobPosition = beganPosition + (snappedValue * worldKnobRange);
            }

            RingPosition = beganPosition;
        }
Exemplo n.º 8
0
        public override void TouchMoved(Touch touch)
        {
            if (currentTouch != touch)
            {
                return;
            }

            thisPosition = TouchManager.ScreenToWorldPoint(touch.position);
        }
Exemplo n.º 9
0
        public override void TouchMoved(Touch touch)
        {
            if (currentTouch != touch)
            {
                return;
            }
            movedPosition = TouchManager.ScreenToWorldPoint(touch.position);
            if (lockToAxis == LockAxis.Horizontal && allowDraggingAxis == DragAxis.Horizontal)
            {
                movedPosition.y = beganPosition.y;
            }
            else if (lockToAxis == LockAxis.Vertical && allowDraggingAxis == DragAxis.Vertical)
            {
                movedPosition.x = beganPosition.x;
            }
            Vector3 vector     = movedPosition - beganPosition;
            Vector3 normalized = vector.normalized;
            float   magnitude  = vector.magnitude;

            if (allowDragging)
            {
                float num = magnitude - worldKnobRange;
                if (num < 0f)
                {
                    num = 0f;
                }
                Vector3 vector2 = num * normalized;
                if (allowDraggingAxis == DragAxis.Horizontal)
                {
                    vector2.y = 0f;
                }
                else if (allowDraggingAxis == DragAxis.Vertical)
                {
                    vector2.x = 0f;
                }
                beganPosition += vector2;
                RingPosition   = beganPosition;
            }
            movedPosition = beganPosition + Mathf.Clamp(magnitude, 0f, worldKnobRange) * normalized;
            if (lockToAxis == LockAxis.Horizontal)
            {
                movedPosition.y = beganPosition.y;
            }
            else if (lockToAxis == LockAxis.Vertical)
            {
                movedPosition.x = beganPosition.x;
            }
            if (snapAngles != 0)
            {
                movedPosition = TouchControl.SnapTo(movedPosition - beganPosition, snapAngles) + beganPosition;
            }
            RingPosition = beganPosition;
            KnobPosition = movedPosition;
            value        = (movedPosition - beganPosition) / worldKnobRange;
            value.x      = inputCurve.Evaluate(Utility.Abs(value.x)) * Mathf.Sign(value.x);
            value.y      = inputCurve.Evaluate(Utility.Abs(value.y)) * Mathf.Sign(value.y);
        }
Exemplo n.º 10
0
        public override void TouchBegan(Touch touch)
        {
            if (currentTouch != null)
            {
                return;
            }

            if (Contains(TouchManager.ScreenToWorldPoint(touch.position)))
            {
                state        = true;
                currentTouch = touch;
            }
        }
Exemplo n.º 11
0
 public override void TouchBegan(Touch touch)
 {
     if (currentTouch == null)
     {
         beganPosition = TouchManager.ScreenToWorldPoint(touch.position);
         if (worldActiveArea.Contains(beganPosition))
         {
             thisPosition = TouchManager.ScreenToViewPoint(touch.position * 100f);
             lastPosition = thisPosition;
             currentTouch = touch;
             beganTime    = Time.realtimeSinceStartup;
         }
     }
 }
Exemplo n.º 12
0
        public override void SubmitControlState(ulong updateTick)
        {
            if (currentTouch == null && allowSlideToggle)
            {
                state = false;
                var touchCount = TouchManager.TouchCount;
                for (int i = 0; i < touchCount; i++)
                {
                    state = state || Contains(TouchManager.ScreenToWorldPoint(TouchManager.GetTouch(i).position));
                }
            }

            SubmitButtonState(target, state, updateTick);
        }
Exemplo n.º 13
0
        public override void TouchBegan(Touch touch)
        {
            if (currentTouch != null)
            {
                return;
            }

            var beganPosition = TouchManager.ScreenToWorldPoint(touch.position);

            if (worldActiveArea.Contains(beganPosition))
            {
                thisPosition = beganPosition;
                lastPosition = beganPosition;
                currentTouch = touch;
            }
        }
Exemplo n.º 14
0
 public override void TouchEnded(Touch touch)
 {
     if (currentTouch == touch)
     {
         Vector3 a      = TouchManager.ScreenToWorldPoint(touch.position);
         Vector3 vector = a - beganPosition;
         float   num    = Time.realtimeSinceStartup - beganTime;
         if (vector.magnitude <= maxTapMovement && num <= maxTapDuration && tapTarget != 0)
         {
             fireButtonTarget = true;
         }
         thisPosition = Vector3.zero;
         lastPosition = Vector3.zero;
         currentTouch = null;
     }
 }
Exemplo n.º 15
0
 public override void TouchBegan(Touch touch)
 {
     if (currentTouch == null)
     {
         beganPosition = TouchManager.ScreenToWorldPoint(touch.position);
         if (worldActiveArea.Contains(beganPosition))
         {
             lastPosition       = beganPosition;
             currentTouch       = touch;
             currentVector      = Vector2.zero;
             currentVectorIsSet = false;
             fireButtonTarget   = true;
             nextButtonTarget   = ButtonTarget.None;
             lastButtonTarget   = ButtonTarget.None;
         }
     }
 }
Exemplo n.º 16
0
 public override void TouchEnded(Touch touch)
 {
     if (currentTouch == touch)
     {
         currentTouch       = null;
         currentVector      = Vector2.zero;
         currentVectorIsSet = false;
         Vector3 b = TouchManager.ScreenToWorldPoint(touch.position);
         if ((beganPosition - b).magnitude < sensitivity)
         {
             fireButtonTarget = true;
             nextButtonTarget = tapTarget;
             lastButtonTarget = ButtonTarget.None;
         }
         else
         {
             fireButtonTarget = false;
             nextButtonTarget = ButtonTarget.None;
             lastButtonTarget = ButtonTarget.None;
         }
     }
 }
Exemplo n.º 17
0
        public override void TouchEnded(Touch touch)
        {
            if (currentTouch != touch)
            {
                return;
            }

            var endedPosition = TouchManager.ScreenToWorldPoint(touch.position);
            var deltaPosition = endedPosition - beganPosition;

            var deltaTime = Time.realtimeSinceStartup - beganTime;

            if (deltaPosition.magnitude <= maxTapMovement && deltaTime <= maxTapDuration)
            {
                if (tapTarget != ButtonTarget.None)
                {
                    fireButtonTarget = true;
                }
            }

            thisPosition = Vector3.zero;
            lastPosition = Vector3.zero;
            currentTouch = null;
        }
Exemplo n.º 18
0
 public bool Contains(Touch touch)
 {
     return(Contains(TouchManager.ScreenToWorldPoint(touch.position)));
 }
Exemplo n.º 19
0
        public override void TouchMoved(Touch touch)
        {
            if (currentTouch != touch)
            {
                return;
            }

            movedPosition = TouchManager.ScreenToWorldPoint(touch.position);

            if (lockToAxis == LockAxis.Horizontal && allowDraggingAxis == DragAxis.Horizontal)
            {
                movedPosition.y = beganPosition.y;
            }
            else
            if (lockToAxis == LockAxis.Vertical && allowDraggingAxis == DragAxis.Vertical)
            {
                movedPosition.x = beganPosition.x;
            }

            var vector = movedPosition - beganPosition;
            var normal = vector.normalized;
            var length = vector.magnitude;

            if (allowDragging)
            {
                var excess = length - worldKnobRange;

                if (excess < 0.0f)
                {
                    excess = 0.0f;
                }

                var dragDelta = excess * normal;

                if (allowDraggingAxis == DragAxis.Horizontal)
                {
                    dragDelta.y = 0.0f;
                }
                else
                if (allowDraggingAxis == DragAxis.Vertical)
                {
                    dragDelta.x = 0.0f;
                }

                beganPosition = beganPosition + dragDelta;
                RingPosition  = beganPosition;
            }

            //if (lockToAxis == LockAxis.Horizontal)
            //{
            //	movedPosition.y = beganPosition.y;
            //	normal.y = 0.0f;
            //}
            //else
            //if (lockToAxis == LockAxis.Vertical)
            //{
            //	movedPosition.x = beganPosition.x;
            //	normal.x = 0.0f;
            //}

            movedPosition = beganPosition + (Mathf.Clamp(length, 0.0f, worldKnobRange) * normal);

            if (lockToAxis == LockAxis.Horizontal)
            {
                movedPosition.y = beganPosition.y;
            }
            else
            if (lockToAxis == LockAxis.Vertical)
            {
                movedPosition.x = beganPosition.x;
            }

            if (snapAngles != SnapAngles.None)
            {
                movedPosition = SnapTo(movedPosition - beganPosition, snapAngles) + beganPosition;
            }

            // How to clamp to bottom half only:
            // movedPosition.y = Mathf.Min( movedPosition.y, beganPosition.y );

            RingPosition = beganPosition;
            KnobPosition = movedPosition;

            value   = (movedPosition - beganPosition) / worldKnobRange;
            value.x = inputCurve.Evaluate(Utility.Abs(value.x)) * Mathf.Sign(value.x);
            value.y = inputCurve.Evaluate(Utility.Abs(value.y)) * Mathf.Sign(value.y);
        }