在对Function蓝图化时,其中BlueprintImplementableEvent元数据说明符表示:
这个方法由蓝图实现,而C++可以调用。
举个例子:
传入的参数会影响在蓝图中实现的样子,
UFUNCTION(BlueprintImplementableEvent)
FText GetTextByString(FString& InString);
- 这是一个带返回类型的函数
- 其中如果参数类型为
FString必须是引用类型&,这样可以避免在传值过程中产生不必要的复制。
上方在函数中的样子
不会是在蓝图的Event,而需要在Function中Override重载里找。

如果想参数只是传入
那需要参数为常量类型const。如下
UFUNCTION(BlueprintImplementableEvent)
FText GetTextByString(const FString& InString);

如果想传入参数并传多个出来
UFUNCTION(BlueprintImplementableEvent)
void SetTextByString(const FString& InString, FText& OutText1, FText& OutText2);

如果只是执行一些方法
那就只会在Event中重载,就和普通方法一样。

总结:
其实因为引用&的缘故,需要区分出参数是传入还是传出,如果没有传出那就是一个事件Event,如果有传出,就会成为一个Function。
评论