UE5/UE4 C++で列挙型(Enum)を作成する(UENUM、UMETA(DisplayName)、UMETA(Hidden))
こちらを参考にさせていただきました。
・UE4 C++とUnreal C++の列挙型の扱い
https://papersloth.hatenablog.com/entry/2017/07/07/005225
いくつか書き方があるようなのですが、BPに公開できるような書き方はこれでしょうか。
「UENUM」を使って記述するようですね。// サンプルの列挙型
UENUM(BlueprintType)
enum class EEnumSample : uint8
{
SampleNone = 0,
SampleOne = 1,
SampleTwo = 2,
};
「enum class EEnumSample : uint8」については
とのことです。C++11からはenum classを使ってスコープを扱えるようになりました。
Unreal C++もベースはモダンなC++11, 14のため、早速取り入れられています。
"ReflectionCaptureComponent.h"内で定義されています。
また、UPROPERTYでBPに公開するenumを持たせたい場合は原則としてモダンな書き方にする必要があります。
上記の書き方をすると以下のように Enum を扱うことができます。
namespace 的な書き方になるのでわかりやすいですね。EEnumSample aEnumSample = EEnumSample::SampleOne;
UE4 の Enum には「UMETA」の記述を使った以下のような機能があるようです。
UMETA(DisplayName="") はBPに公開する場合の名前を別途指定できるようです。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(Hidden) は指定するとBPでは非表示になるようです。
とのことです。DisplayNameを別途分けるか下記のような記述にするかは好みの問題だと思いますので、どちらでも。
Hiddenを指定するとBlueprint側からは非表示になります。
UE でのC++は結構覚えることが多いのでちゃんと覚えたいですね。
| UE4 | 10:00 | comments:0 | trackbacks:0 | TOP↑