private void LateUpdate() { transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.LookRotation(Vector3.forward + Vector3.Lerp(Vector3.down, Vector3.up, (_verticalDirection + 1f) / 2f), Vector3.forward), _rotationDamping * Time.deltaTime); if (!_movementEnabled) { return; } _speedProgression.Update(Time.deltaTime); var speed = _speedProgression.Evaluate(); transform.position += Vector3.forward * (speed * Time.fixedDeltaTime); }