04 - 函数UFUNCTION

本文主要说明了UE5中有关函数UFUNCTION()的基础概念。

UFUNCTION

UFunction 是虚幻引擎(UE)反射系统可识别的C++函数。UObject 或蓝图函数库可将成员函数声明为UFunction,方法是将 UFUNCTION() 宏放在头文件中函数声明上方的行中:

UFUNCTION([specifier1=setting1, specifier2, ...], [meta(key1="value1", key2, ...)])
ReturnType FunctionName([Parameter1, Parameter2, ..., ParameterN1=DefaultValueN1, ParameterN2=DefaultValueN2]) [const];

可以发现UFUNCTION()宏也支持函数说明符和元数据标识。

函数说明符

常用到的函数说明符有:

函数说明符效果
BlueprintCallable该函数可在蓝图中执行
BlueprintImplementableEvent该函数可在蓝图中实现
BlueprintNativeEvent该函数可被蓝图重载,如果没有被重载,则执行带有后缀_Implementation的C++版本
BlueprintPure用此说明符标记或用const修饰的函数被称为纯函数,对于后者来说,可用BlueprintPure = false取消
CallInEditor该函数可在编辑器选中的示例中点击运行

此外,还有和网络同步等功能相关的函数说明符,详见这里

元数据标识

UFUNCTION()相关的元数据标识详见这里

参考资料

  • UE5 虚幻引擎UEC++从基础到进阶_哔哩哔哩_bilibili

  • 虚幻引擎UFunction | 虚幻引擎 5.6 文档 | Epic Developer Community