When I use SetTimelineFinishedFunc in UE4.25 will Error(error c2664),
how to make it?
Interactable_Door.cpp
#include “Kismet/KismetMathLibrary.h”
#include “Interactable_Door.h”
void AInteractable_Door::BeginPlay()
{
Super::BeginPlay();
if (CurveFloat)
{
DoorTimeline->AddInterpFloat(CurveFloat, InterpFunction, FName("Alpha"));
DoorTimeline->SetTimelineFinishedFunc(TimelineFinish);
DoorTimeline->SetLooping(false);
}
}
AInteractable_Door::AInteractable_Door()
{
DoorTimeline = CreateDefaultSubobject(“Timeline”);
InterpFunction.BindUFunction(this, FName(“InterpReturn”));
TimelineFinish.BindUFunction(this, FName(“OnFinish”));
}
void AInteractable_Door::Interact()
{
if (Closed)
{
DoorTimeline->Play();
}
else
{
DoorTimeline->Reverse();
}
Closed = !Closed;
}
void AInteractable_Door::OnFinish()
{
}
void AInteractable_Door::InterpReturn(float value)
{
Mesh->SetRelativeRotation(FRotator(0, UKismetMathLibrary::Ease(0, -110, value, EEasingFunc::SinusoidalInOut), 0));
}
Interactable_Door.h
#pragma once
#include “CoreMinimal.h”
#include “…/Interactable/Master_Interactable.h”
#include “Components/TimelineComponent.h”
#include “Interactable_Door.generated.h”
/**
*
*/
UCLASS()
class THEIRSTORY_API AInteractable_Door : public AMaster_Interactable
{
GENERATED_BODY()
protected:
virtual void BeginPlay() override;
private:
bool Closed;
public:
AInteractable_Door();
virtual void Interact() override;
UFUNCTION()
void OnFinish();
UFUNCTION()
void InterpReturn(float value);
FOnTimelineFloat InterpFunction{};
FOnTimelineFloat TimelineFinish{};
UPROPERTY()
UTimelineComponent* DoorTimeline;
UPROPERTY()
UCurveFloat* CurveFloat;
};