UE4 C++で作ったBPの実行ピンや出力ピン、戻り値を複数にする方法メモ
4.12が来ましたね!シーケンサーのサンプルにタッピーチキンが出てましたね。
今回は4.12でプラグインをビルドしてみるついでに、実行ピンや出力ピン、戻り値が複数になっているBPを作ってみたのでそれのメモです。
引数を増やすのと普通に値をReturnするのは特に意識せずに出来るのですが、実行ピンや出力ピン、戻り値が複数にするのはちょっと付け加えたりする必要があります。
下の画像みたいな感じのやつです
先に参考にしたドキュメントやAnswerHub、フォーラムのURLを貼っておきます。
How can I create Blueprints with multiple exec output pins in C++?
How do I use an Enum as function Input in C++?
How To define a function with multiple return values as blueprint in C++
実行ピンを複数にする方法
まず、実行ピン用のEnum型を宣言します。
UENUM(BluePrintType)
enum class EHogeEnum : uint8
{
HogeA, HogeB
};
こんな感じです。uint8にはしなくてもいいです。
関数自体の宣言はこんな感じです。
UFUNCTION(BlueprintCallable, Category = "HogeCategory", meta = (ExpandEnumAsExecs = "HogeExec"))
static void HogeFunction(EHogeEnum HogeExec);
大事なのは
meta = (ExpandEnumAsExecs = "HogeExec")
を指定することです。こうすることでEnum型でHogeExecという名前のがあればそれが実行ピンとして展開されます。
出力ピンを複数にする方法
実行ピンの時と同様にEnum型を宣言します。
UENUM(BluePrintType)
enum class EHogeEnum : uint8
{
HogeA, HogeB
};
次に関数の宣言です
UFUNCTION(BlueprintCallable, Category = "HogeCategory", meta = (ExpandEnumAsExecs = "HogeExec"))
static void HogeFunction(EHogeEnum& HogeExec);
実行ピンの時と違うのは型宣言で&がついている点です。
戻り値を複数にする方法
出力ピンを複数にする時みたいに宣言時に&をつけます。
UFUNCTION(BlueprintCallable, Category = "HogeCategory")
static void HogeFunction(FString InputString1, FString InputString2, FString& OutputString1, FString& OutputString2);
こんな感じです。これの場合は&のついていないInputString1とInputString2は引数、&のついているOutputString1とOutputString2は戻り値になります。