I am making a camera shake for my sprint and when I stop sprinting, I want it to stop the shake progressively so naturally I didn’t set the parameter for immediately stop to true in the StopAllInstancesOfCameraShake function, but when I do that, if I try to sprint multiple times it’ll sprint normally the first time, but any time after that, it won’t play the camera shake except for like half a second right after I release the sprint button. It works fine if I have the stop immediately parameter set to true. This may be a bug but I also may be stupid so I apologize if I’m doing something wrong but I’ve looked everywhere and I haven’t seen anything that could hint at it being an issue with my work. Here is my code for anyone wanting to look, I’ve confirmed it has nothing to do with the rest of the function
void ASurvivalCharacter::SprintCalc(bool Sprinting) {
if (Sprinting) {
if (SprintFloat) {
FOnTimelineFloat TimelineProgress;
FOnTimelineEventStatic TimelineEnd;
TimelineProgress.BindUFunction(this, FName("BeginSprintTimelineFunc"));
SprintTimeline.AddInterpFloat(SprintFloat, TimelineProgress);
SprintTimeline.SetLooping(false);
SprintTimeline.PlayFromStart();
GetWorld()->GetFirstPlayerController()->PlayerCameraManager->PlayCameraShake(CamShake, 1);
sprinting = true;
}
}
else if (!Sprinting) {
if (SprintFloat) {
FOnTimelineFloat TimelineProgress;
FOnTimelineEventStatic TimelineEnd;
TimelineProgress.BindUFunction(this, FName("EndSprintTimelineFunc"));
SprintTimeline.AddInterpFloat(SprintFloat, TimelineProgress);
SprintTimeline.SetLooping(false);
SprintTimeline.PlayFromStart();
GetWorld()->GetFirstPlayerController()->PlayerCameraManager->StopAllInstancesOfCameraShake(CamShake, true);
sprinting = false;
}
}
}