private void Rotate() { ITargetControllerStageModel model = _settings.StageModels[_currentSettingsModel]; int direction = model.RandomDirection ? (Random.Range(0f, 1f) > 0.5f ? 1 : -1) : 1; float velocity = Random.Range(model.Velocity, model.Velocity + model.VelocityRange); float angle = Random.Range(model.Angle, model.Angle + model.AngleRange) * direction; Sequence sequence = DOTween.Sequence(); sequence.Pause(); sequence.Append( transform.DOLocalRotate(new Vector3(0, 0, angle), velocity, RotateMode.LocalAxisAdd) .SetEase(model.EaseMode) .OnComplete(() => Rotate()) ); _view.DoRotation(sequence); }