UE4]关于BlueprintImplementableEvent传参加const的区别

在对Function蓝图化时,其中BlueprintImplementableEvent元数据说明符表示:

这个方法由蓝图实现,而C++可以调用。

举个例子:

传入的参数会影响在蓝图中实现的样子,

UFUNCTION(BlueprintImplementableEvent)
FText GetTextByString(FString& InString);
  • 这是一个带返回类型的函数
  • 其中如果参数类型为FString必须是引用类型&,这样可以避免在传值过程中产生不必要的复制。

上方在函数中的样子

不会是在蓝图的Event,而需要在FunctionOverride重载里找。

image.png

如果想参数只是传入

那需要参数为常量类型const。如下

UFUNCTION(BlueprintImplementableEvent)
FText GetTextByString(const FString& InString);

image.png

如果想传入参数并传多个出来

UFUNCTION(BlueprintImplementableEvent)
void SetTextByString(const FString& InString, FText& OutText1, FText& OutText2);

image.png

如果只是执行一些方法

那就只会在Event中重载,就和普通方法一样。

image.png

总结:

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

评论