private IEnumerator StartTap() { yield return(new WaitForSeconds(Delay)); var touching = BaseInput.IsTouching(); if (touching) { Tapping = true; OnTapEvent.Invoke(BaseInput.GetTouchPosition()); } }
public void Update() { var touching = BaseInput.IsTouching(); if (touching && !WasTouching) { StartCoroutine(StartTap()); } if (!touching && Tapping) { Tapping = false; OnReleaseEvent.Invoke(); } WasTouching = touching; }
public void Update() { var touching = BaseInput.IsTouching(true); if (touching) { var touch0Position = BaseInput.GetTouchPosition(0).y; var touch1Position = BaseInput.GetTouchPosition(1).y; var position = (touch0Position + touch1Position) * 0.5f; if (!Panning) { if (!WasTouching) { LastPosition = position; } var delta = Mathf.Abs(position - LastPosition); if (!Rotating && delta >= Threshold) { LastPosition = position; Panning = true; } } if (Panning) { var delta = position - LastPosition; OnDragEvent.Invoke(Vector3.up * (delta * Ratio)); LastPosition = position; } } if (!touching && Panning) { Panning = false; OnReleaseEvent.Invoke(); } WasTouching = touching; }
public void Update() { var touching = BaseInput.IsTouching(true); if (touching) { var touch0Position = BaseInput.GetTouchPosition(0); var touch1Position = BaseInput.GetTouchPosition(1); var angle = CalculateAngle(touch0Position, touch1Position); if (!Rotating) { if (!WasTouching) { LastAngle = angle; } var delta = angle - LastAngle; if (!Panning && Mathf.Abs(delta) >= Threshold) { LastAngle = angle; Rotating = true; } } if (Rotating) { var delta = angle - LastAngle; OnRotationEvent.Invoke(delta); LastAngle = angle; } } if (!touching && Rotating) { Rotating = false; OnReleaseEvent.Invoke(); } WasTouching = touching; }