FText

Unreal Engine での FText の作成、変換、比較などに関するリファレンス。

Unreal Engine (UE) における テキスト ローカライゼーション の主要なコンポーネントは FText クラスです。次の機能を提供することによりテキスト ローカライゼーションをサポートしているため、すべてのユーザー向けテキストはこのクラスを使用する必要があります。

FText にはローカライズされていない、または「インバリアント カルチャ」のテキストを作成する AsCultureInvariant 関数 (または INVTEXT マクロ) も用意されています。これは、外部 API のプレーヤー名をユーザー インターフェースに表示できる形式に変換する場合などに役立ちます。

FText::GetEmpty()」、または単に「FText()」を使用して空白の FText を作成することができます。

変換

FTextFString に変換したり、それから変換することができます。ただし、FText にはローカライゼーション データにリンクした文字列が含まれていることから、FString には文字列のみが含まれる一方で、これらのメソッドは本質的に損失が多く、ローカライゼーション データを破棄 (またはその作成に失敗) することになります。代替のメソッドとして テキスト値のマーシャリング を行うと損失のない変換が可能です。しかし、このメソッドでは手動で処理するより内部マーシャリングに適したデータが生成されます。

次の変換関数は FText 文字列を生成しますが、ローカライゼーション データは含まれません。

FText 関数

説明

AsCultureInvariant

ローカライズされていない、インバリアント カルチャの FText インスタンスを既存の FString から作成します。

FromString

ローカライズされていない FText インスタンスを既存の FString から作成します。

これは、非エディタ ビルドの AsCultureInvariant と同じです。エディタ ビルドでは、この関数はテキストにインバリアント カルチャのフラグを付けません。つまり、保存済みアセットの FText プロパティに割り当てられた場合はローカライズ可能になることがあります。

FromName

ローカライズされていない FText インスタンスを既存の FName から作成します。これは、FName パラメータの ToString 関数の出力で FromString を呼び出すのと同じです。

FText から FString に変換するには、ToString 関数を使用します。FString に変換すると FText の文字列データは保持しますが、ローカライゼーション データは失われます。

比較

FText データは単純な文字列に比べるとより複雑なため、多重定義の演算子による比較はサポートしていません。代わりに、含まれている微妙なデータを認識する比較を実行するための関数をいくつか提供しています。次の比較関数を使用できます。

FText 関数

説明

EqualTo

この関数は、使用する比較規則を決定する ETextComparisonLevel の値を取ります。呼び出した FText がこれらの比較規則の中で他と一致するかどうかを示す bool を返します。

EqualToCaseIgnored

この関数は、EqualToSecondETextComparisonLevel の値で呼び出すためのラッパーです。戻り値は EqualTo から直接取得します。

CompareTo

この関数は、使用する比較規則を決定する ETextComparisonLevel の値を取ります。多くの文字列、またはメモリ比較関数と同様に int32 が返されます。その際、「0」は等しいことを表し、負または正の値は呼び出した FTextFText パラメータに対して相対的に昇順または降順にソートされていることを示します。

CompareToCaseIgnored

この関数は、CompareToSecondETextComparisonLevel の値で呼び出すためのラッパーです。戻り値は CompareTo から直接取得します。

ユーザー インターフェースで FText を使用する

スレート / UMG

スレートおよび UMG はユーザー向けテキストを表示または管理するためのビルトイン ウィジェットの FText 属性または引数を使用します。カスタマイズしたウィジェットをビルドする場合は FText を使用することを推奨します。

HUD/Canvas

Canvas を使用して HUD システムで FText を表示するには、新しい FCanvasTextItem を作成し、表示するテキストに Text 変数を設定します。次にコード例を示します。

    // テキストを含むために新しい FCanvasTextItem インスタンスを作成する。
    FCanvasTextItem TextItem(FVector2D::ZeroVector, TestHUDText, BigFont, FLinearColor::Black);
    // FCanvasTextItem にテキストを追加する。
    TextItem.Text = FText::Format(LOCTEXT("ExampleFText", "You currently have {0} health left."), CurrentHealth);
    // FCanvas::DrawItem でテキストを画面に描画する。
    Canvas->DrawItem(TextItem, 10.0f, 10.0f);

HUD で Canvas を使用する場合は、DrawItemDrawHUD 関数内で呼び出すか、DrawHUD で始まる一連の関数の中で呼び出す必要があります。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル