Что-то у меня плохо получается =( Вроде собирается и даже работает, но как то через задницу.
Callfunctionbyname.h
Код:
#pragma once
#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "CallFunctionByName.generated.h"
UCLASS()
class PS1_API UCallFunctionByName : public UBlueprintFunctionLibrary
{
GENERATED_BODY()
public:
UFUNCTION(BlueprintCallable, meta=(DisplayName = "Call Function by Name", DefaultToSelf = "Object"), Category="Custom Functions")
static bool CallFunctionByName(UObject* Object, FString FunctionName);
};
callfunctionbyname.cpp
Код:
#include "CallFunctionByName.h"
bool UCallFunctionByName::CallFunctionByName(UObject * Object, FString FunctionName)
{
FName const FunctionFName(*FunctionName);
if (Object)
{
{
UFunction* const func = Object->FindFunction(FunctionFName);
if(func && func->ParmsSize == 0)
{
FTimerDelegate Delegate;
Delegate.BindUFunction(Object, FunctionFName);
Delegate.Execute();
return true; // Worked.
}
return false; // Didn't Work.
}
}
return false; // Didn't Work.
}
Последний раз редактировалось
Maxonyx 14 сен 2017, 15:01, всего редактировалось 2 раз(а).