【UnrealEngine】構造体の作成方法を学ぼう!【C++】
C++で構造体を作成する方法について調べたので本記事でまとめていきます。
今回は構造体(Struct)を「単一」で扱う方法と「配列」で扱う方法です。
新規C++アクタの作成ができたらヘッダーファイルにコードを記述していきます。

【注意点】
UCLASS()の前にコードを書くようにしてください。
構造体を単一にするか配列にするかのコードをUCLASS()内にこの後記述するのですが、構造体の情報を先に持っておく必要があるため、後ろに書くとエラーになるようです。
USTRUCT(BlueprintType)
struct FStatus
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite)
float HP;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
float Attack;
};
つづいてUCLASS()内にコードを書いていきます
最初は単一の構造体にしようと思いますのでstructで作成したFStatusをそのまま書きます。

public:
//構造体
UPROPERTY(EditAnywhere, BlueprintReadWrite)
FStatus Party;
ソースファイルはひとまず作成完了になるため、ソースファイルに移動して作成した構造体の変数に値を入れていきましょう

ここまで書けたらUnrealEngine側に戻りコンパイルします。コンパイルが無事に完了したらC++を元にBlueprintを作成します。
対象のC++を右クリックから「〇〇に基づくブループリントクラスを作成します」を押下することで作成できます。


作成したブループリントクラスに移動します。
イベントグラフ内で作成した構造体を検索してみましょう。構造体のGetとSetを見つけることができたらここまでは完璧ですね!

Breakから作成した変数を個別に使うこともできますね。

とここまでは構造体を単一のノードとして扱う処理を書きましたが、ここからは配列として扱うコードを書いていこうと思います。
ヘッダーファイルの一番下に書いたコードを下記に変更します。
TArray<Status> Party;

そして、ソースファイルに記載していた変数の値のコードも変更していきます。
さきほど作成した構造体は単一のものだったので、各変数にそれぞれ値を入力するだけでよかったのですが、配列について多少異なります。
今回はHPとAttackの値にそれぞれ3つのデータを入れてみました。

結果として、配列を3つ作成することができ値もしっかり入っていますね。

ということで今回は構造体の「単一」と「配列」の作成方法を備忘録として作成してみました。
本日もお疲れさまでした。
◆YouTubeチャンネルもやってます
