目录
一、蓝图调用其继承的C++类的函数
二、蓝图调用全局C++函数
一、蓝图调用其继承的C++类的函数
首先新建一个C++类
父类选择“Actor”
这里命名为“MyActorFromC”,然后点击创建类,等待编译完成。
在头文件中申明函数
UFUNCTION(BlueprintCallable, Category="publicFunction")
int testFunction(int a, int b);
在源文件中编写该函数的具体实现
int AMyActorFromC::testFunction(int a, int b)
{
int c = a+b;
return c;
}
重新编译,等待编译完成后,新建一个以此C++类为父类创建蓝图类
这里命名为“BP_MyActorFromC”
打开“BP_MyActorFromC”,可以看到此时已经可以使用在C++类中创建的方法“testFunction”
测试一下该函数的执行结果
可以看到结果正确
二、蓝图调用全局C++函数
接下来就要创建一个能供全局调用的C++函数,创建一个父类为蓝图函数库(BlueprintFunctionLibrary)的C++类
这里就使用默认的命名“MyBlueprintFunctionLibrary”
在“MyBlueprintFunctionLibrary.h”申明一个函数:
public:
UFUNCTION(BlueprintCallable, Category="LibraryFunction")
static int testGlobalFunction(int a, int b);
在“MyBlueprintFunctionLibrary.cpp”中编辑函数逻辑:
int UMyBlueprintFunctionLibrary::testGlobalFunction(int a, int b)
{
int c=a*b;
return c;
}
编写好程序后再次编译。
我们随便新建一个蓝图类,在该蓝图中调用“testGlobalFunction”
测试运行,可以看到这里已经不用去继承C++父类,而在任何地方都可以使用自己编辑的C++函数
参考文章:
UE4 蓝图调用C++函数(附带项目工程)_ue4 c++调用蓝图函数_蒙双眼看世界的博客-CSDN博客