Common mistakes:

Clamp or normalize diagonal input:

direction =
    Vector3.ClampMagnitude(
        direction,
        1f
    );