在UE4中蓝图本身已经非常强大,但是并没有强大到没有任何缺陷 --Mantra
如果你也遇到了上面的问题,可以继续往下看,我们接下来就会用C++扩展已有的蓝图功能。
首先需要创建一个特殊的C++类(需要继承自BlueprintFunctionLibrary),具体操作可以见下图
创建完成后会编译工程源码并且会自动打开VS(笔者用的是VS15),接下来我们编辑自定义功能。在做一个完整的功能之前最好先做测试,所以我们首先会写一个简单的函数来做测试(至于代码中出现的UFUNCTION之类的宏就不多做解释啦)
有几个点需要注意一下:
1)函数需要使用UFUNCTION进行修饰,否则蓝图无法调用
2)函数需要使用static修饰
3)一般定义成public,方便外部访问
案例一:测试函数
public:
// 测试函数,主要用来测试
UFUNCTION(BlueprintCallable, Category = "Mantra|Tool")
static void GetCurrentActorInfo(AActor* Actor);
void UMyBlueprintFunctionLibrary::GetCurrentActorInfo(AActor* A