【UnrealEngine】キャラクターに構造体を持たせる?【C++】
前回の記事ではアクタに構造体を持たせるということをやってみたのですが、プレイヤーにも持たせる記事も書いていこうと思います。
前回はfloatの値で統一していたのですが、今回は様々な型の構造体をプレイヤーには持たせるため、前回とコードの内容が違います。
また、キャラクターとアクタでは多少記述場所もことなるのでご注意ください。
◆アクタに構造体を持たせた記事
さっそくやっていきましょう。
まずはキャラクターに持たせる構造体のベースを作成していきます。
C++のプロジェクトファルダにあるキャラクターのC++クラスをクリックして開きます。
開いたらヘッダーファイルに移動してUCLASSの前にコードを書いて初期値を設定

このコードをブロック内に追加してます!
C++ Example
//構造体の作成
USTRUCT(BlueprintType)
struct FCharacterStatus
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite)
float FloatArray = 0.f;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
bool BoolArray = false;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
int32 IntArray = 0;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
FString StringArray;
};
続いてヘッダーファイルの一番下に移動してさらにコードを書きます。ここでは配列型の変数を作成しています。

このコードをブロック内に追加してます!
C++ Example
public:
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TArray Status;
};
ここまで書けたらヘッダーファイルに記述するコードは以上になるので、ソースファイルに移動しましょう。
コンストラクタの中に記述していきます。
ここで書いている内容は各変数への値の入力と、配列への追加ですね

このコードをブロック内に追加してます!
C++ Example
USTRUCT(BlueprintType)
struct FStatus
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite)
float HP;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
float Attack;
};
これでコードはOKです。セーブしてUnrealEngine側でコンパイルしてイベントグラフに移動しましょう。
右クリックからStatusを検索してGetで配置します。Getを選択した状態で詳細タブを見てみると配列が追加されてますね

またイベントグラフ内で配列をブレイクして確認してみるとそれぞれの型が表示されました!

これでキャラクターに構造体(配列)を持たせることができましたね!
ということで本日もお疲れさまでした!!!
◆YouTubeチャンネルもやってます
