☕️
【UE5】USTRUCTの構造体のみのファイルを作成した時にGENERATED_BODYでコンパイルエラーになった際の対処方法
今回はRiderで構造体のファイルを作成しUSTRUCTにしたときに、そのままだとコンパイルエラーになったので備忘録として対処法について記載しようと思います。
環境
UE5.4.4
Rider 2024.3.2
対応
Riderで以下のような構造体を作成したとします。
ExampleStruct.h
#pragma once
#include "CoreMinimal.h"
USTRUCT(Blueprintable, BlueprintType)
struct FExampleStruct
{
GENERATED_BODY()
UPROPERTY(EditAnywhere,BlueprintReadWrite)
float ExampleParam;
};
これでコンパイルをしてみると、GENERATED_BODY
の所で以下のコンパイルエラーが出ます
DamageHandleParam.h(15): [C4430] 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
これの対処方法は自分の場合はファイル名.generated.h
を追加することでした。
今回の例で言うとExampleStruct.generated.h
を追加するとコンパイルエラーが解消されるようになります。
ExampleStruct.h
#pragma once
#include "CoreMinimal.h"
#include "ExampleStruct.generated.h" //追加
USTRUCT(Blueprintable, BlueprintType)
struct FExampleStruct
{
GENERATED_BODY()
UPROPERTY(EditAnywhere,BlueprintReadWrite)
float ExampleParam;
};
解決の参考になれば幸いです。
Discussion