UCharacterMovementComponent::StartSwimming
#include "GameFramework/CharacterMovementComponent.h"
Access: public
Specifiers: virtual
Description
Handles the internal transition from another movement mode (typically walking or falling) into MOVE_Swimming, consuming the remaining time budget for the current physics step.
Caveats & Gotchas
- • This is a mid-tick transition helper, not a public 'enter water' entry point — call SetMovementMode(MOVE_Swimming) instead if you just want to force swimming from gameplay code.
- • Consumes and continues simulating remainingTime after the transition, so it can end up calling into the swimming physics for the same frame the character entered water.
- • Relies on the physics volume's fluid friction/buoyancy settings; behaviour changes significantly if the character enters a custom PhysicsVolume with non-default BuoyancyCoefficient or FluidFriction.
Signature
virtual void StartSwimming(FVector OldLocation, FVector OldVelocity, float timeTick, float remainingTime, int32 Iterations); Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| OldLocation | FVector | Location on the last tick before entering water. | — |
| OldVelocity | FVector | Velocity at the last tick before entering water. | — |
| timeTick | float | Time elapsed since OldLocation. | — |
| remainingTime | float | Remaining DeltaTime to complete the transition into swimming. | — |
| Iterations | int32 | Current physics sub-step iteration count. | — |
Return Type
void Example
Logging transitions into swimming C++
void UMyCharacterMovementComponent::StartSwimming(FVector OldLocation, FVector OldVelocity, float timeTick, float remainingTime, int32 Iterations)
{
UE_LOG(LogTemp, Verbose, TEXT("Entering swim mode with %f seconds remaining in this step"), remainingTime);
Super::StartSwimming(OldLocation, OldVelocity, timeTick, remainingTime, Iterations);
} Tags
Version History
Introduced in: 4.0
| Version | Status | Notes |
|---|---|---|
| 5.6 | stable | — |
Feedback
Was this helpful?