Bootstrap

UE4在C++中调用蓝图类中的函数

在Content下新建一个蓝图类BP_CallTest,并添加一个函数TestCppCall

该函数名TestCppCall包含在UClass类成员变量FuncMap中,通过FindFunctionByName获取,返回类型为UFunction*,然后通过Actor实例调用ProcessEvent函数

FSoftClassPath softClassPath(TEXT("/Game/BP_CallTest.BP_CallTest_C"));
UClass* bpClass = softClassPath.TryLoadClass<AActor>();
if (bpClass)
{
    UFunction* bpFunction = bpClass->FindFunctionByName(FName("TestCppCall"));
    AActor* actor = GetWorld()->SpawnActor<AActor>(bpClass);
    actor->ProcessEvent(bpFunction, nullptr);
}

ProcessEvent第二个参数传入TestCppCall函数的参数,如果TestCppCall没有参数可以传入nullptr。

为TestCppCall添加一个字符串类型参数Str

此时ProcessEvent可以像下面这样调用