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; } } }
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; }
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; } } }
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; }
public override void TouchMoved(Touch touch) { if (currentTouch != touch) { return; } thisPosition = TouchManager.ScreenToWorldPoint(touch.position); }
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); }
public override void TouchBegan(Touch touch) { if (currentTouch != null) { return; } if (Contains(TouchManager.ScreenToWorldPoint(touch.position))) { state = true; currentTouch = touch; } }
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; } } }
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); }
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; } }
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; } }
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; } } }
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; } } }
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; }
public bool Contains(Touch touch) { return(Contains(TouchManager.ScreenToWorldPoint(touch.position))); }
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); }