Choose your operating system:
Windows
macOS
Linux
Structs (または UStructs
) は、関連するプロパティを整理および操作するのに役立つデータ構造です。構造体を使用して、プロジェクトの整理に役立つカスタム変数型を作成することができます。このガイドは、構造体をセットアップし、それらのカスタマイズ方法を見抜く上で役立ちます。
構造体を実装する
構造体を定義する ヘッダ (.h) ファイルを開きます。
C++ 構造体 を定義し、構造体が必要とするすべての Ustruct 指定子 などの
USTRUCT
マクロをその前に追加します。構造体の一番上に
GENERATED_BODY
マクロを追加します。構造体のメンバ変数を
UPROPERTY
を使ってタグづけして、UE のリフレクション システムとブループリント スクリプトでそれらが見えるようにすることができます。エンジンおよびエディタのさまざまな側面におけるプロパティの動作を確認するには、「Uproperty 指定子」のリストを参照してください。
例
USTRUCT(BlueprintType)
struct FMyStruct
{
GENERATED_BODY()
//~ The following member variable will be accessible by Blueprint Graphs:
// This is the tooltip for our test variable.
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Test Variables")
int32 MyIntegerMemberVariable;
//~ The following member variable will be not accessible by Blueprint Graphs:
int32 NativeOnlyMemberVariable;
/**~
* This UObject pointer is not accessible to Blueprint Graphs, but
* is visible to UE4's reflection, smart pointer, and garbage collection
* systems.
*/
UPROPERTY()
UObject* SafeObjectPointer;
};
追加情報
役立つヒント、および構造体を使用する際に覚えておく事を説明します。
UStructs
は UE のスマート ポインタとガーベジ コレクション システムを使って、UObjects
がガーベジ コレクションによって削除されることを防ぐことができます。構造体は
UObjects
とは異なります。そのため、構造体はシンプルなデータ型に対する使用が最善です。プロジェクト内でより複雑なインタラクションを行う場合は、代わりに UObject や AActor のサブクラスを作成すると良いでしょう。
UStructs
はレプリケーションを考慮 していません。UProperty
変数はレプリケーションを考慮 しています。
UE は構造体に対して Make 関数と Break 関数を自動作成することができます。
Make は
UStruct
にBlueprintType
タグがあると作成されます。Break は Ustruct に
BlueprintReadOnly
またはBlueprintReadWrite
プロパティが最低 1 つある場合に作成されます。Break が作成する純粋なノードには、1 つのプロパティに対して
BlueprintReadOnly
またはBlueprintReadWrite
としてタグづけされた出力ピンが 1 つ付いています。