IEnumerator throwAtTarget(Transform target) { transform.position = target.transform.position + InitialRelativePosition; transform.rotation = Quaternion.Euler(0, 0, RandomExtra.Range(AngleRange)); var landTarget = target.transform.position + (Vector3)(Random.insideUnitCircle * MaxDistanceFromTarget); var throwDir = (Vector2)landTarget - (Vector2)transform.position; var throwTarget = landTarget - (Vector3)throwDir.normalized * Random.Range(0, LandTravel); ThrowTransition.FlashFromTo(transform.position, throwTarget); while (ThrowTransition.Transitioning) { transform.position = ThrowTransition.Value; yield return(null); } transform.position = throwTarget; LandTransition.FlashFromTo(transform.position, landTarget); while (LandTransition.Transitioning) { transform.position = LandTransition.Value; yield return(null); } transform.position = landTarget; }