UE5 C++で列挙型(Enum)の定義名から「UEnum」型を取得する(UClass::TryFindTypeSlow、UE5.1以降)
C++で列挙型(Enum)の定義名から「UEnum」型を取得する方法です。
※UE5.1以降では「FindObject」が「Warning」扱いとなっているため、別の方法の記載となります。
C++で列挙型(Enum)の定義名からUEnum 型を取得するには「UClass::TryFindTypeSlow」関数を使います。
UEnum 型の公式ドキュメントはこちら。
・UEnum
https://docs.unrealengine.com/4.27/en-US/API/Runtime/CoreUObject/UObject/UEnum/
というわけでサンプルコードはこんな感じになりました。
まずは列挙型。
Enum の変数の内容をデバッグ表示する場合などに自分は使ったり、
他の処理と組み合わせて使うことは多そうなので覚えておきたいところでですね。
※UE5.1以降では「FindObject」が「Warning」扱いとなっているため、別の方法の記載となります。
C++で列挙型(Enum)の定義名からUEnum 型を取得するには「UClass::TryFindTypeSlow」関数を使います。
UEnum 型の公式ドキュメントはこちら。
・UEnum
https://docs.unrealengine.com/4.27/en-US/API/Runtime/CoreUObject/UObject/UEnum/
というわけでサンプルコードはこんな感じになりました。
まずは列挙型。
この列挙型から「UEnum」型の取得はこんな感じに。// サンプルの列挙型
UENUM(BlueprintType)
enum class EEnumSample : uint8
{
SampleNone = 0,
SampleOne = 1,
SampleTwo = 2,
};
// 列挙型の定義名
const FString aEnumTypeString(TEXT("EEnumSample"));
// 列挙型の定義名から UEnum を取得
UEnum* const aEnum = UClass::TryFindTypeSlow(*aEnumTypeString);
Enum の変数の内容をデバッグ表示する場合などに自分は使ったり、
他の処理と組み合わせて使うことは多そうなので覚えておきたいところでですね。
| UE5 | 10:00 | comments:0 | trackbacks:0 | TOP↑