呼び出し元の Self を引数のデフォルト値にする方法

More than 3 years have passed since last update.

例えば、関数ライブラリに以下のような関数を作ったとします。

image

この関数の Target には呼び出し元の Self を指定させたいわけですが、毎回 Self を指定させるのは面倒です。

そこで、Target のデフォルト値に Self にします。

この方法は、C++ で関数を定義する場合のみ使えます。(ブループリントでの方法はわかりませんでした。)

引数に Self を指定させたい場合、UFUNCTION のメタデータに以下を追加します。

DefaultToSelf="引数名"

先ほどの関数の場合、以下の様な定義になります。

UFUNCTION(BlueprintCallable, Category = "Test", meta=(DefaultToSelf = "Target"))

static void DisplayName(UObject* Target);

こうすることで、Target に何も指定されていない場合は、デフォルト値に Self が入るようになります。

(ただし、ノード上の見た目は変わりません。)