[UE4]蓝图和C++调用自定义函数

1、C++自定义方法,蓝图调用

    UFUNCTION(BlueprintCallable, Category = "MyFunc")
    void dosth();

UFUNCTION宏是处理将C++函数暴露给反射系统的一些事情,参数BlueprintCallable意味着这个函数可以在蓝图中调用,而后面的目录是必须有的,这样在蓝图中右键点击的时候,我们就可以根据这个目录找到我们需要的函数。
1

2、蓝图定义方法,C++调用

UFUNCTION(BlueprintImplementableEvent, Category="MyFunc")
void dosth();

当我们在蓝图中定义了一系列操作后,我们也想用C++调用,我们利用BlueprintImplementableEvent这个参数,让在C++定义的这个函数在蓝图中实现成为一个event。另外:我们只要在头文件声明这个方法即可,不用实现函数体,不然会报错。
我们在蓝图中,通过中这个event打印一句话。
2
在某些地方调用即可,这里我在Actor在BeginPlay()方法调用了dosth函数。

void AMyActor::BeginPlay()
{
    Super::BeginPlay();
    dosth();    
}

这里写图片描述 这里写图片描述

3、C++有默认方法,蓝图可以覆盖

    UFUNCTION(BlueprintNativeEvent, Category = "MyFunc")
    void dosth();

然后我们要实现一个方法。

void AMyActor::dosth_Implementation()
{
//do something
}

这样的话,如何蓝图没有实现dosth方法,那么我们就调用dosth_Implementation这个方法,如果蓝图实现了dosth,那么dosth_Implementation就不会调用。

猜你喜欢

转载自blog.csdn.net/wayway0554/article/details/81263081