Unreal UFUNCTION函数宏标记

  1. BlueprintCallable,使C++中的函数在蓝图中能被调用,新建C++类CustomActor继承AActor,并分别声明public、protected、private方法:

拖拽一个CustomActor到Map中,打开关卡蓝图,可以到无法在蓝图中调出C++中的方法:

我们为这三个方法添加BlueprintCallable标记:

然后在蓝图中调用:

可以发现,只要添加了BlueprintCallable标记,不管是private、protected还是public的函数,统统能在蓝图中调用!

  1. 静态成员函数在蓝图中不需要通过实例对象就能调用。在C++中声明Custom的静态函数CustomActorStaticMethod,并添加BlueprintCallable标记:

可以看到,不需要CustomActor的实例就能在蓝图中调用它的静态函数。

  1. 函数的普通参数、引用参数、常量引用参数、指针参数在蓝图表现形式。给CustomActorMethod方法添加int、int&、const int&、AActor*参数,并在蓝图中调用:

可以看到,普通参数作为输入引脚,可以在引脚中自定义参数值;引用参数会变成返回值引脚;常引用参数也是输入引脚,不过必须通过另一个变量传入:

指针参数也是一个输入引脚。

  1. Category,可以给函数添加在蓝图中的分类。给CustomActorMethod添加标记:Catagory="One|Two|Three":

可以看到,通过"|"来划分层级结构,实现给函数分类。

  1. BlueprintImplementableEvent,使函数仅在蓝图中定义。给CustomActorMethod添加BlueprintImplementableEvent标记:

新建一个蓝图类继承CustomActor:

在蓝图中查找CustomActorMethod:

可以发现通过这个标记,能以事件的形式在蓝图中定义函数要执行的逻辑。当函数有返回值时,蓝图中可override重写这个函数:

而且BlueprintImplementableEvent标记的函数不能在C++中定义,否则编译会报错。

  1. BlueprintNativeEvent,这个标记功能和BlueprintImplementableEvent基本上一样,不过它的函数需要在C++中定义,蓝图类可以选择不重写:

需要注意的是,C++中定义函数时,需要额外声明并定义"函数名_Implementation"函数,这个函数的实现就是调用原函数时执行的逻辑。

  1. BlueprintPure,函数作为纯函数使用,不需要流程引脚,一定要有返回值:

  1. const函数拥有返回值时在蓝图中的形式和纯函数相似:

没有返回值的时候还是需要连接流程引脚的:

  1. meta DisplayNsame,自定义当前函数在蓝图中的名称:

这样在蓝图中通过调用"测试函数"就能执行该函数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值