構造体を使用する

構造体の使用を開始するための簡略な操作ガイドです。

Windows
MacOS
Linux

Structs (または UStructs) は、関連するプロパティを整理および操作するのに役立つデータ構造です。構造体を使用して、プロジェクトの整理に役立つカスタム変数型を作成することができます。このガイドは、構造体をセットアップし、それらのカスタマイズ方法を見抜く上で役立ちます。

構造体を実装する

  1. 構造体を定義する ヘッダ (.h) ファイルを開きます。

  2. C++ 構造体 を定義し、構造体が必要とするすべての Ustruct 指定子 などの USTRUCT マクロをその前に追加します。

  3. 構造体の一番上に GENERATED_BODY マクロを追加します。

  4. 構造体のメンバ変数を UPROPERTY を使ってタグづけして、UE のリフレクション システムとブループリント スクリプトでそれらが見えるようにすることができます。

    1. エンジンおよびエディタのさまざまな側面におけるプロパティの動作を確認するには、「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;
};

追加情報

役立つヒント、および構造体を使用する際に覚えておく事を説明します。

  1. UStructs は UE のスマート ポインタとガーベジ コレクション システムを使って、UObjects がガーベジ コレクションによって削除されることを防ぐことができます。

  2. 構造体は UObjects とは異なります。そのため、構造体はシンプルなデータ型に対する使用が最善です。

    1. プロジェクトでのインタラクションが複雑になる場合は UObjects の代わりに UObject または AActor を作成した方がよいでしょう。

  3. UStructs はレプリケーションを考慮 していません

    1. UProperty 変数はレプリケーションを考慮 しています

  4. UE は構造体に対して Make 関数と Break 関数を自動作成することができます。

    1. Make は UStructBlueprintType タグがあると作成されます。

    2. Break は Ustruct に BlueprintReadOnly または BlueprintReadWrite プロパティが最低 1 つある場合に作成されます。

    3. Break が作成する純粋なノードには、1 つのプロパティに対して BlueprintReadOnly または BlueprintReadWrite としてタグづけされた出力ピンが 1 つ付いています。

タグ
Select Skin
Light
Dark

新しい Unreal Engine 4 ドキュメントサイトへようこそ!

あなたの声を私たちに伝えるフィードバックシステムを含め、様々な新機能について開発をおこなっています。まだ広く使える状態にはなっていないので、準備ができるまでは、ドキュメントフィードバックフォーラムで、このページについて、もしくは遭遇した問題について教えていただけると助かります。

新しいシステムが稼働した際にお知らせします。

フィードバックを送信