fc2ブログ

凛(kagring)のUE5/UE4とゲーム制作と雑記ブログ

2016 年から UE4 / 2021年から UE5 を触り始めました。勉強したもののメモ用ブログです。ゲーム制作に関するメモや雑記とか色々あります。C++ での Qt、Unity もほんの少しあります。

2022年04月 | ARCHIVE-SELECT | 2022年06月

| PAGE-SELECT |

≫ EDIT

UE5/UE4 C++の関数で複数の戻り値(返り値)を持つ

C++の関数で複数の戻り値(返り値)を持つ方法です。

こちらを参考にさせていただきました。

・UE4 C++で作ったBPの実行ピンや出力ピン、戻り値を複数にする方法メモ
https://tamfoi.hatenablog.com/entry/2016/06/02/095807

関数の戻り値(返り値)を複数持たせたい場合は、引数に「&」を付けてあげて参照にするだけで問題なさそうです。
こんな感じで引数「Value1」を参照にしてあげます。

UFUNCTION(BlueprintCallable)
void GetReturnValue2(int32& Value1);

結果はこんな感じになります。
戻り値を複数持つ001
無事参照にした引数「Value1」が戻り値となりました。

というわけで複数のパターンを検証してみました。

まずは普通の関数の書き方での戻り値の場合。

UFUNCTION(BlueprintCallable)
int32 GetReturnValue1();

結果はこんな感じになり、戻り値は「Return Value」で固定されるようです。
戻り値を複数持つ000

次に引数を参照にして一つ作成しました。

UFUNCTION(BlueprintCallable)
void GetReturnValue2(int32& Value1);

結果はこんな感じになり、引数の名称の戻り値が作成されました。
戻り値を複数持つ001

次に通常の戻り値と参照による戻り値を混ぜてみました。

UFUNCTION(BlueprintCallable)
int32 GetReturnValue3(int32& Value1);

結果はこんな感じでちゃんと複数になり、
それぞれ名称が「Return Value」と指定した「Value1」というものになりました。
戻り値を複数持つ002

最後に参照による戻り値を二つ設定してみました。

UFUNCTION(BlueprintCallable)
void GetReturnValue4(int32& Value1, int32& Value2);

結果はこんな感じに引数で指定した名称の戻り値が複数作成されました。
戻り値を複数持つ003

といったことから、個人的には特に関数名がわかりやすいもので一つだけの戻り値の場合は通常のものを使い、
戻り値の名称をきっちり設定したい場合は参照設定での戻り値にするのが良いのかなと思いました。

| UE5 | 10:00 | comments:0 | trackbacks:0 | TOP↑

| PAGE-SELECT |