fc2ブログ

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

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

PREV | PAGE-SELECT | NEXT

≫ EDIT

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/

というわけでサンプルコードはこんな感じになりました。
まずは列挙型。

// サンプルの列挙型
UENUM(BlueprintType)
enum class EEnumSample : uint8
{
  SampleNone = 0,
  SampleOne = 1,
  SampleTwo = 2,
};

この列挙型から「UEnum」型の取得はこんな感じに。

// 列挙型の定義名
const FString aEnumTypeString(TEXT("EEnumSample"));

// 列挙型の定義名から UEnum を取得
UEnum* const aEnum = UClass::TryFindTypeSlow(*aEnumTypeString);


Enum の変数の内容をデバッグ表示する場合などに自分は使ったり、
他の処理と組み合わせて使うことは多そうなので覚えておきたいところでですね。

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

COMMENT















非公開コメント

TRACKBACK URL

http://kagring.blog.fc2.com/tb.php/874-9b3f1928

TRACKBACK

PREV | PAGE-SELECT | NEXT