In most GameplayMessageSubsystem mechnism worked would be like:
FGameplayMessageListenerHandle UMyClass::RegisterGameplayTagEvent()
{
UGameplayMessageSubsystem& MessageSubsystem = UGameplayMessageSubsystem::Get(this);
FGameplayMessageListenerHandle Handle = MessageSubsystem.RegisterListener(TAG_MyTag,this, &UMyClass::MyFunc);
return Handle;
}
But I wonder if there’s another way to pass a lambda as a param to register in MessageSubsystem, like:
FGameplayMessageListenerHandle UMyClass::RegisterGameplayTagStringEvent()
{
UGameplayMessageSubsystem& MessageSubsystem = UGameplayMessageSubsystem::Get(this);
auto Callback = [&](FGameplayTag Channel, const MyStruct& Payload)
{
// Gameplay logic
};
FGameplayMessageListenerHandle Handle = MessageSubsystem.RegisterListener(TAG_MyTag, this, Callback );
return Handle;
}
It’s driving me nuts, hope for a little help, thx!