※一部画像は異なりますが、本記事の内容はUE4にも適用できます。
本記事では、Unreal Engineで、C++で列挙型(Enumeration)を実装する方法について説明します。
※Unreal EngineでC++を使うためには、C++の導入(環境構築・プロジェクト設定)が必要です。
導入していない場合は、以下の記事を参考にしてください。
列挙型の実装
C++での実装
C++で列挙型を実装するためには、まずヘッダファイルを追加する必要があります。
ヘッダファイルの追加方法がわからない方は、以下の記事を参照してください。
なお、列挙型はエディタ上から作成できないため、エクスプローラ上で追加する必要があります(以下の記事の方法②)。
ヘッダファイルを追加したら、列挙型を実装するためのソースコードを記述します。
以下のソースコードを記述します。
列挙型名の頭に「E」を付ける決まりになっています。
この例では、「EMyEnum
」という列挙型名としています。
なお、列挙子の記述方法については後で説明しますが、列挙子を1つも記述していないとコンパイルエラーになります。
【ヘッダファイル(MyEnum.h)】
#pragma once
#include "CoreMinimal.h"
#include "MyEnum.generated.h"
UENUM(BlueprintType)
enum class EMyEnum : uint8
{
// 列挙子を記述
Test = 0 UMETA(DisplayName = "Test"),
};
なお、「#include "MyEnum.generated.h"
」のMyEnum
の部分は、ヘッダファイル名と同じにする必要があります。
同じにしないと、コンパイルエラーになります。
この例では、ファイル名はMyEnum.h
としているため、上記のとおり記述しています。
列挙型アセットとの比較
補足として、列挙型のアセットファイルで列挙型を実装する場合と比較します。
先ほど説明したC++で実装するための操作は、列挙型アセットを作成する場合における以下の操作と同じことを意味しています。
実装した列挙型の利用
C++で実装した列挙型は、ほかの列挙型と同じように、変数や関数の入出力のデータ型として利用できます。
たとえば、変数のデータ型に利用する場合、C++で実装した列挙型は以下のように選択できます。
列挙子の追加
C++での実装
今まで説明した手順で、C++の列挙型を実装し、それをデータ型として利用できるようになりました。
続いて、列挙型に対して列挙子を追加する必要があります。
列挙子を追加したソースコードを、以下に示します。
Apple, Orange, Peach
という列挙子を追加しています。
#pragma once
#include "CoreMinimal.h"
#include "MyEnum.generated.h"
UENUM(BlueprintType)
enum class EMyEnum : uint8
{
// 追加した列挙子
Apple = 0 UMETA(DisplayName = "Apple"),
Orange = 1 UMETA(DisplayName = "Orange"),
Peach = 2 UMETA(DisplayName = "Peach"),
};
列挙子を追加すると、以下のとおりエディタ上で列挙子を選択できることを確認できます。
列挙子を追加した列挙型
補足として、列挙型のアセットファイルで列挙子を追加する場合と比較します。
先ほど説明した、C++で列挙子を追加する操作は、列挙型アセットにおける以下の操作と同じことを意味しています。
以上で、C++による列挙型の実装は完了です。
【宣伝】
Unreal EngineのC++は、一般的なC++にはない独自の仕様が多く、難易度が高いため、体系的に学ぶのが効率的です。
Colory Gamesでは、Unreal EngineのC++を使う人を対象とした入門書をBOOTHで販売しています。
Unreal Engine上でC++を使って開発するために必要となる基礎知識を一冊の本にまとめています。
対話形式でわかりやすく、プログラミング未経験でも理解できる構成としており、体系的にUnreal Engine C++を学習できます。
【商品ページ(BOOTH)】 https://colory-games.booth.pm/items/4734728