Timeline wont call binded function with AddInterpFloat

Hi
My timeline wont call binded function. Code looks like this

.h file

	FTimeline MovementTimeline;
	UCurveFloat* MovementCurve;

.cpp

constructor

	static ConstructorHelpers::FObjectFinder<UCurveFloat> CurveAssetFinder(TEXT("/Game/Map/Curve_mov"));

BeginPlay()

	FOnTimelineFloat timelineProgress;
	timelineProgress.BindUFunction(this, FName("ProcessMovementTimeline"));

	FOnTimelineEvent timelineEnded;
	timelineProgress.BindUFunction(this, FName("ProcessMovementEnd"));

	MovementTimeline.AddInterpFloat(MovementCurve, timelineProgress);
	MovementTimeline.SetTimelineFinishedFunc(timelineEnded);

	MovementTimeline.SetTimelineLengthMode(TL_LastKeyFrame);

Tick()

void ABaseUnit::Tick(float DeltaTime)
{
	Super::Tick(DeltaTime);
	if (pathUpdated)
	{
		MovementTimeline.Stop();
		UpdatePath();
		MovementTimeline.PlayFromStart();
	}

	if (MovementTimeline.IsPlaying())
	{
		UE_LOG(LogTemp, Log, TEXT("MovementTimeline.IsPlaying()"));
		MovementTimeline.TickTimeline(DeltaTime);
	}
}

binded function

void ABaseUnit::ProcessMovementTimeline(float Value)
{
	UE_LOG(LogTemp, Log, TEXT("ABaseUnit::ProcessMovementTimeline"));

	const float SplineLength = spline->GetSplineLength();

	const FVector CurrentSplineLocation = spline->GetLocationAtDistanceAlongSpline(Value * SplineLength, ESplineCoordinateSpace::World);
	FRotator CurrentSplineRotation = spline->GetRotationAtDistanceAlongSpline(Value * SplineLength, ESplineCoordinateSpace::World);

	CurrentSplineRotation.Pitch = 0.f;
	SkeletalMeshComponent->SetWorldLocationAndRotation(CurrentSplineLocation, CurrentSplineRotation);
}

There are simply no logs

UE_LOG(LogTemp, Log, TEXT("ABaseUnit::ProcessMovementTimeline"));

but these are shown

UE_LOG(LogTemp, Log, TEXT("MovementTimeline.IsPlaying()"));

so therefore function is not beeing called. Does anyone seems to know what is the problem?
BR

Hey Korred,
Does pathUpdated value change (to false maybe?) inside the UpdatePath() method? And why are you playing the timeline on event tick?
Have you tried using the Visual Studio debugger to see why the timeline is not calling the bound function? Try to add a breakpoint on the MovementTimeline.PlayFromStart() row and follow the code path

Logic and setting bool values is ok, I only have problem with this callbac function. I made some porgress but still not working properly.
What i did was

	FOnTimelineFloat timelineProgress;
	timelineProgress.BindUFunction(this, FName("ProcessMovementTimeline"));
	timelineProgress.ExecuteIfBound(1.0f);
	timelineProgress.Execute(1.0f);

And it threw error that function cannot be found, so moved function to public and added UFUNCTION() property. This way these two Execute functions were called properly but in Tick() my function is still not beeing called.
Regarding debugging i have problem that i cant ‘step into’ UE function, it just skips to next line

Are you using DebugGame configuration when debugging? Otherwise the code is getting optimized and some lines are skipped on debugging.
Anyway instead of using BindUFunction try to use

timelineProgress.BindDynamic(this, &ThisClass:ProcessMovementTimeline);

I think it’s cleaner