private void EndFlingGesture(Vector2 gestureEndPosition) { var heading = gestureEndPosition - (Vector2)CurrentFocus.transform.position; var distance = heading.magnitude; var direction = heading / distance; if (ShouldFling(distance, GestureTimeElapsed)) { applyForceOnFixedUpdate = true; Rigidbody2D rigidbody2D = CurrentFocus.GetComponent <Rigidbody2D>(); fixedUpdateRigidBody2D = rigidbody2D; rigidbody2D.isKinematic = false; fixedUpdateForceToAdd = heading; CurrentFocus.GetComponent <Fling>().FlingTrail.gameObject.SetActive(true); } else { SetInitialMovement initialMovement = CurrentFocus.GetComponent <SetInitialMovement>(); Rigidbody2D rigidbody2D = CurrentFocus.GetComponent <Rigidbody2D>(); rigidbody2D.isKinematic = false; rigidbody2D.velocity = initialMovement.InitialMovement; } GestureTimeElapsed = 0f; InputManager.instance.CurrentFocus = null; }
private void StartFlingGesture(GameObject GestureTarget) { SetInitialMovement initialMovement = GestureTarget.GetComponent <SetInitialMovement>(); Rigidbody2D rigidbody2D = GestureTarget.GetComponent <Rigidbody2D>(); rigidbody2D.isKinematic = true; rigidbody2D.velocity = new Vector2(0f, 0f); CurrentFocus = GestureTarget; }
// Start is called before the first frame update void Awake() { if (F_Collider2D == null) { F_Collider2D = this.gameObject.GetComponent <Collider2D>(); } if (F_RigidBody2D == null) { F_RigidBody2D = this.gameObject.GetComponent <Rigidbody2D>(); } if (InitialMovement == null) { InitialMovement = this.gameObject.GetComponent <SetInitialMovement>(); } }