bool IsOnCanvas(Touch2 touch) { var origin = _camera.ScreenToWorldPoint(touch.Position); var hit = Physics2D.Raycast(origin, Vector2.zero, 10, Constants.Layers.Canvas); return(hit.collider != null); }
void AppendMovementDelta(Touch2 touch) { if (touch.Phase == TouchPhase.Began) { return; } _totalMovement += Mathf.Abs(touch.DeltaPosition.magnitude); }
public static Vector2 GetNormalizedWorldCoordinates(Camera camera, Touch2 touch) { var yPos = touch.Position.y / Screen.height; var xPos = touch.Position.x / Screen.width; var newPos = camera.ViewportToWorldPoint(new Vector2(xPos, yPos)); newPos.z = 0.0F; return(newPos); }
private void MaybeMoveSelectedObject(Touch2 touch) { if (_selectedObject == null) { return; } _selectedObject.Move(_camera.ScreenToWorldPoint(touch.Position)); }
private Vector3 CalculateInertia(Touch2 touch) { Vector2 delta = touch.DeltaPosition; float positionX = -delta.x * TouchSensitivity * Time.deltaTime; float positionY = 0; // -delta.y * TouchSensitivity * Time.deltaTime; return(new Vector3(positionX, positionY, 0)); }
void TryStartGesture(Touch2 touch) { if (!IsOnCanvas(touch)) { return; } _isDrawing = true; _currentStroke = CreateStroke(); _currentStroke.Add(Utilities.GetNormalizedWorldCoordinates(_camera, touch)); }
private void MaybeSelectObject(Touch2 touch) { if (_selectedObject != null) { return; } if (touch.Phase == TouchPhase.Began) { ResetLongPressTimer(); } if (touch.Phase != TouchPhase.Stationary) { return; } if (Time.time - _longpressTime < _touchPhaseBeganTime) { return; } ResetLongPressTimer(); var origin = _camera.ScreenToWorldPoint(touch.Position); var hit = Physics2D.Raycast(origin, Vector2.zero, 10, Constants.Layers.Ground); if (touch.Phase == TouchPhase.Began) { Debug.Log("_camera touch at " + origin); } Debug.DrawRay(origin, Vector3.forward * 10, Color.red, 10f); if (hit.collider == null) { return; } var selected = hit.collider.gameObject.GetComponent <SelectOnTouch>(); if (selected == null) { return; } Debug.Log("Selecting object " + hit.collider.gameObject.name); selected.Select(); _selectedObject = selected; }
void TryAddStroke(Touch2 touch) { if (!_isDrawing) { return; } if (!IsOnCanvas(touch)) { return; } _currentStroke.Add(Utilities.GetNormalizedWorldCoordinates(_camera, touch)); }
CuddleEvent TryHitRessi(Touch2 touch) { var origin = _camera.ScreenToWorldPoint(touch.Position); var hit = Physics2D.Raycast(origin, Vector2.zero, 10, Constants.Layers.TouchRessi); if (hit.collider == null) { return(null); } var animator = hit.collider.gameObject.GetComponentInParent <SpineRessiAnimator>(); return(new CuddleEvent(animator, hit.collider.name, touch)); }
private async void OnTapClick(object sender, RoutedEventArgs e) { // delay so we don't mix with the mouse click that got us here. await Task.Delay(TimeSpan.FromMilliseconds(200)); try { Touch2.Down(100, 200); Touch2.Drag(300, 400); Touch2.Up(); //Touch.Tap(100, 120); } catch (Exception exception) { this.Events.Items.Add($"Exception: {exception.Message}"); } }
private void PanCamera(Touch2 touch) { switch (touch.Phase) { case TouchPhase.Began: StopInertia(); break; case TouchPhase.Moved: MoveCamera(touch); break; case TouchPhase.Ended: StartInertia(); break; } }
private void MaybeDeselectObject(Touch2 touch) { if (_selectedObject == null) { return; } if (touch.Phase != TouchPhase.Ended) { return; } Debug.Log("Deselecting object"); _selectedObject.Deselect(); _selectedObject = null; _touchPhaseBeganTime = float.MaxValue; }
public void CopyTo(DualShockState state) { state.ReportTimeStamp = ReportTimeStamp; state.LX = LX; state.LY = LY; state.RX = RX; state.RY = RY; state.L2 = L2; state.R2 = R2; state.Triangle = Triangle; state.Circle = Circle; state.Cross = Cross; state.Square = Square; state.DPad_Up = DPad_Up; state.DPad_Down = DPad_Down; state.DPad_Left = DPad_Left; state.DPad_Right = DPad_Right; state.L1 = L1; state.R3 = R3; state.Share = Share; state.Options = Options; state.R1 = R1; state.L3 = L3; state.PS = PS; state.Touch1 = Touch1.Clone(); state.Touch2 = Touch2.Clone(); state.TouchButton = TouchButton; state.TouchPacketCounter = TouchPacketCounter; state.FrameCounter = FrameCounter; state.Battery = Battery; state.IsCharging = IsCharging; state.AccelX = AccelX; state.AccelY = AccelY; state.AccelZ = AccelZ; state.GyroX = GyroX; state.GyroY = GyroY; state.GyroZ = GyroZ; }
private void TrackGesture(Touch2 touch) { if (touch.Phase == TouchPhase.Ended || touch.Phase == TouchPhase.Canceled) { if (_didTrackGesture) { ResetGesture(); return; } SetIgnorableGesture(); return; } if (touch.Phase != TouchPhase.Moved) { return; } var deltaY = touch.DeltaPosition.y; var deltaX = touch.DeltaPosition.x; if (Math.Abs(deltaY * _camera.aspect) <= Math.Abs(deltaX)) // only care if gesture is dominantely in the y direction { SetIgnorableGesture(); return; } var velocity = CalculateVelocity(deltaY); if (_position == Position.Up && velocity > 0) { SetIgnorableGesture(); return; } if (_position == Position.Down && velocity < 0) { SetIgnorableGesture(); return; } if (!AllowSwipeUp && _position == Position.Center && velocity > 0) { SetIgnorableGesture(); return; } if (!AllowSwipeDown && _position == Position.Center && velocity < 0) { SetIgnorableGesture(); return; } _totalVelocity += velocity; _didTrackGesture = true; _camera.transform.Translate(0, velocity, 0); if (Math.Abs(_totalVelocity) > GestureVelocityTreshold) { StartProcessingGesture(); } }
public static Touch2 GetTouch(int index) { Touch2 touch2 = new Touch2(); if (isWin8) touch2.win8Touch = Win8TouchInput.GetTouch(index); else touch2.touch = Input.GetTouch(index); return touch2; }
public CuddleEvent(SpineRessiAnimator ressi, string colliderName, Touch2 touch) { Ressi = ressi; ColliderName = colliderName; Touch = touch; }
private void MoveCamera(Touch2 touch) { _inertia = CalculateInertia(touch); _camera.transform.position += ClampDeltaMovement(_inertia); }