A bit new to Unreal/C++, tried to find some info about my question on Google but no luck here :( So need some guidance :) I'm trying to pass a function as a parameter to another function. Syntax doesn't show any errors but when I'm trying to build a solution I've got an error :
[C2064] term does not evaluate to a function taking 2 arguments
Appreciate any help! :)
`
void UPlayerUI::CallUpdateIconSlot(TEnumAsByte<EDamageClass> DamageClass, bool bIsActive, float DeltaTime)
{
UpdateSlotIcon(DamageClass, bIsActive, DeltaTime, &UPlayerUI::UpdateIcon);
}
void UPlayerUI::UpdateSlotIcon(TEnumAsByte<EDamageClass> DamageClass ,bool bIsActive, float DeltaTime, float(UPlayerUI::*UpdateOpacity)(float, float))
{
if (bIsActive)
{
for (auto IconSlot : Slots)
{
if (IconSlot.Value == DamageClass)
{
const float CurrentOpacity = IconSlot.Key -> ColorAndOpacity.A;
IconSlot.Key -> SetOpacity(*UpdateOpacity(CurrentOpacity, DeltaTime));
}
else
{
UE_LOG(LogTemp, Error, TEXT("Huston we have a problem"));
}
}
}
}
float UPlayerUI::UpdateIcon(float PCurrentOpacity, float DeltaTime)
{
if (PCurrentOpacity == Opacity.Get<1>())
{
Opacity = MakeTuple(Opacity.Get<1>(), Opacity.Get<0>());
}
return FMath::FInterpConstantTo(PCurrentOpacity, Opacity.Get<1>(), DeltaTime, .75f);
}
`
In this line that causes an error:
IconSlot.Key -> SetOpacity(*UpdateOpacity(CurrentOpacity, DeltaTime));
tried:
this -> (*UpdateOpacity)(CurrentOpacity, DeltaTime)
But getting other errors.