I thought of a few solutions, but can’t verify at the moment.
-
Add enum MovementDirection to character,
pros: easier management
cons: performance loss -
Add bools bIsMovingForward and bIsSprinting
if (bIsSprinting)
{
if (bIsMovingForward) MoveSpeed *= 2.0f; // forward sprinting
else if (!bIsMovingForward) MoveSpeed *= 1.5f; // Meaning either strafing or NE, NW movement
}
pros: easier on character movement
cons: harder to implement in character
- Add extra movement input from character on tick if sprinting
void Tick(float DeltaTime) override
{
Super::Tick(DeltaTime);
if (bIsSprinting && bIsMovingForward) MoveForward(1.0f);
}
pros: easiest to implement
cons: performance…
I’m not sure if they’ll even work, but if you guys know a better way, please post it here