UKismetMathLibrary::ClampVectorSize
#include "Kismet/KismetMathLibrary.h"
Access: public
Specifiers: staticUFUNCTIONBlueprintPure
Description
Returns a copy of a vector with its magnitude (length) clamped between Min and Max, preserving direction. Commonly used to enforce speed limits or bounded forces while keeping the movement direction intact.
Caveats & Gotchas
- • If the input vector is near-zero, direction is undefined and the result may snap to an arbitrary direction when scaled up to Min. Guard against zero-length input when Min > 0.
- • Both Min and Max clamp the *magnitude*, not individual components — this is different from FVector::BoundToCube or component-wise clamping.
- • Passing Min > Max produces undefined results; always ensure Min <= Max.
Signature
static UE_INL_API FVector ClampVectorSize(FVector A, double Min, double Max); Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| A | FVector | The input vector. | — |
| Min | double | Minimum magnitude. If the vector's length is less than Min, it is scaled up to Min. | — |
| Max | double | Maximum magnitude. If the vector's length is greater than Max, it is scaled down to Max. | — |
Return Type
FVector Example
Enforce velocity bounds on a movement vector C++
FVector Velocity = ComputeDesiredVelocity();
// Keep speed between 100 and 600 cm/s
FVector ClampedVelocity = UKismetMathLibrary::ClampVectorSize(Velocity, 100.0, 600.0); Version History
Introduced in: 4.0
| Version | Status | Notes |
|---|---|---|
| 5.6 | stable | — |
Feedback
Was this helpful?