Language:
Page Info
Skill Level:
Engine Version:

プロパティ

プロパティの宣言

プロパティは標準の C++ 変数記法を使って宣言され、プロパティ メタデータと変数指定子を定義する UPROPERTY マクロが先にきます。

UPROPERTY([specifier, specifier, ...], [meta(key=value, key=value, ...)])
Type VariableName;

主要なデータ型

整数

整数データ型の規則では、ビット サイズの前に「int」あるいは「uint」をつけます。

変数の型

説明

uint8

8-bit 符号なし

uint16

16-bit 符号なし

uint32

32-bit 符号なし

uint64**

64-bit 符号なし

int8**

8-bit 符号付き

int16**

16-bit 符号付き

int32**

32-bit 符号付き

int64

64-bit 符号付き

As Bitmasks

Integer プロパティが bitmask としてエディタに公開できるようになりました。Integer プロパティを bitmask としてマークするには、以下のようにメタ セクションに "bitmask" を追加します。

UPROPERTY(EditAnywhere, Meta = (Bitmask))
int32 BasicBits;

このメタ タグを追加すると、個々にオンオフの切り替えが可能な一般名の付いたフラグ ("Flag 1"、"Flag 2"、"Flag 3" など) のドロップダウン リストとして integer が編集可能になります。

GenericBitmask.png

Bitflag 名をカスタマイズするには、まず "bitflags" メタ タグで UENUM を作成する必要があります。

UENUM(Meta = (Bitflags))
enum class EColorBits
{
    ECB_Red,
    ECB_Green,
    ECB_Blue
};

UENUM が作成されたら、"BitmaskEnum" メタ タグで参照することができます。このようになります。

UPROPERTY(EditAnywhere, Meta = (Bitmask, BitmaskEnum = "EColorBits"))
int32 ColorFlags;

この変更に伴い、ドロップダウン ボックスにリストされた bitflag は列挙されたクラス エントリの名前と値を受け取ります。この例では、ECB_Red が値 0 です。 つまり、チェックされていると、bit 0 (ColorFlags に 1 を追加) がアクティベートされます。ECB_Green は bit 1 (ColorFlags に 2 を追加) に相当し、 ECB_Blue は bit 2 (ColorFlags に 4 を追加) に相当します。

CustomBitmask.png

列挙型には 32 を超えるエントリを含むことができますが、最初の 32 値のみがプロパティ エディタ UI の bitmask association で 表示されます。同様に、明示的な値エントリが受け取られたら、0 から 31 の明示的な値をもつエントリはドロップダウンには含まれません。

浮動小数点型

アンリアルでは、標準の C++ 浮動小数点型である float 型と double 型が使用されています。

Boolean 型

Boolean 型は、 C++ bool キーワードで、あるいはビットフィールドとして表現されます。

uint32 bIsHungry :1;
bool bIsThirsty;

文字列

アンリアル エンジン 4 は、主要な 3 種類の文字列をサポートしています。

  • FString は「動的文字型配列」の文字列型の典型といえます。

  • FName は、グローバル文字列表の変更不可能な大文字・小文字を区別しない文字列への参照です。FString より小さく、より効率よく受け渡しができますが、操作は難しくなります。

  • FText は、ローカリゼーションに対処するために作成された更に堅牢な文字列表現です。

使用する場合はたいてい、アンリアルは文字で TCHAR 型に依存します。TEXT() マクロは TCHAR リテラルを表すために利用できます。

MyDogPtr->DogName = FName(TEXT("Samson Aloysius"));

いつ使用するのか、どのように機能するのかなど、3 つの文字列型の詳細は 文字列の取り扱いのドキュメント を参照してください。

プロパティ指定子

プロパティを宣言する時、エンジンおよびエディタの各種特性で、プロパティがどのように動作するのか制御する指定子を 追加することができます。