UCharacterMovementComponent::AddRadialImpulse
#include "GameFramework/CharacterMovementComponent.h"
Access: public
Specifiers: virtualoverride
Description
Applies an instantaneous outward impulse to the character if it's within Radius of Origin, typically used for explosion knockback.
Caveats & Gotchas
- • Does nothing if the distance from Origin exceeds Radius, exactly like AddRadialForce.
- • bVelChange bypasses mass scaling; since CharacterMovementComponent doesn't use physical mass the way rigid bodies do, most gameplay code sets bVelChange to true for predictable launch distances.
- • The impulse is queued via AddImpulse() and consumed on the next movement update, so calling it multiple times in one frame accumulates.
Signature
virtual void AddRadialImpulse(const FVector& Origin, float Radius, float Strength, enum ERadialImpulseFalloff Falloff, bool bVelChange) override Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| Origin | const FVector& | World-space center of the impulse. | — |
| Radius | float | Distance from Origin within which the impulse is applied. | — |
| Strength | float | Impulse magnitude at the origin (or overall magnitude when Falloff is constant). | — |
| Falloff | ERadialImpulseFalloff | Whether impulse strength stays constant or falls off linearly with distance. | — |
| bVelChange | bool | If true, Strength is treated as a direct velocity change rather than a mass-scaled impulse. | — |
Return Type
void Example
Applying explosion knockback C++
GetCharacterMovement()->AddRadialImpulse(ExplosionLocation, 800.f, 1200.f, RIF_Linear, true); See Also
Tags
Version History
Introduced in: 4.0
| Version | Status | Notes |
|---|---|---|
| 5.6 | stable | — |
Feedback
Was this helpful?