fc2ブログ

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

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

PREV | PAGE-SELECT | NEXT

≫ EDIT

UE5/UE4 C++で列挙型(Enum)を作成する(UENUM、UMETA(DisplayName)、UMETA(Hidden))

C++で列挙型(Enum)を作成する方法です。

こちらを参考にさせていただきました。

・UE4 C++とUnreal C++の列挙型の扱い
https://papersloth.hatenablog.com/entry/2017/07/07/005225

いくつか書き方があるようなのですが、BPに公開できるような書き方はこれでしょうか。

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

「UENUM」を使って記述するようですね。
「enum class EEnumSample : uint8」については

C++11からはenum classを使ってスコープを扱えるようになりました。
Unreal C++もベースはモダンなC++11, 14のため、早速取り入れられています。
"ReflectionCaptureComponent.h"内で定義されています。
また、UPROPERTYでBPに公開するenumを持たせたい場合は原則としてモダンな書き方にする必要があります。

とのことです。

上記の書き方をすると以下のように Enum を扱うことができます。

EEnumSample aEnumSample = EEnumSample::SampleOne;

namespace 的な書き方になるのでわかりやすいですね。

UE4 の Enum には「UMETA」の記述を使った以下のような機能があるようです。

UENUM(BlueprintType)
enum class EEnumSample : uint8
{
  ENUM_SampleNone UMETA(DisplayName="SampleNone"),
  ENUM_SampleOne UMETA(DisplayName="SampleOne"),
  ENUM_SampleTwo UMETA(DisplayName="SampleTwo"),
  Num UMETA(Hidden)

};

UMETA(DisplayName="") はBPに公開する場合の名前を別途指定できるようです。
UMETA(Hidden) は指定するとBPでは非表示になるようです。

DisplayNameを別途分けるか下記のような記述にするかは好みの問題だと思いますので、どちらでも。
Hiddenを指定するとBlueprint側からは非表示になります。

とのことです。

UE でのC++は結構覚えることが多いのでちゃんと覚えたいですね。

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

COMMENT















非公開コメント

TRACKBACK URL

http://kagring.blog.fc2.com/tb.php/650-2526c79b

TRACKBACK

PREV | PAGE-SELECT | NEXT