Language:
Page Info
Engine Version:
The translation of this page is out of date. Please see the English version for the latest version of the page.

Properties

プロパティ宣言

プロパティは標準の 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 プロパティが bitmast としてエディタに公開できるようになりました。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++ 浮動小数点タイプであるフロート型と double 型 が使用されています。

Boolean タイプ

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

uint32 bIsHungry :1;
bool bIsThirsty;

Strings

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

  • FString は「dynamic array」文字列タイプの典型といえます。

  • FName は、グローバル文字列表のコピー不可能な大文字・小文字を区別しない文字列へのリファレンスです。FString より小さく、より効率よく受け渡しができますが、操作は難しくなります。

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

使用する場合はたいてい、アンリアルはキャラクターの TCHAR タイプに依存します。TEXT() マクロは TCHAR リテラルを表すために利用できます。

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

いつ使用するのか、どのように機能するのかなど、3 つの文字列タイプの詳細は 文字列の取り扱い を参照してください。

プロパティ指定子

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