FName
FNames は、 コンテンツ ブラウザ で新規アセットに名前を付けたり、ダイナミック マテリアル インスタンスのパラメータを変更する場合、またはスケルタル メッシュのボーンにアクセスする時に使います。再利用する場合でも、所定の文字を一回だけデータ テーブルに格納するので、 非常に負荷の軽いシステムです。
Fnames は大文字と小文字を区別しません。変更も操作もできません。Fnames のストレージ システムと静的な性質によって、 キーによる参照と Fnames へのアクセスが速いです。FNames サブシステムのもう 1 つの特徴は、文字列から Fname への変換をハッシュ テーブルで素早く行うことです。
FText
Unreal Engine (UE) における テキスト ローカライゼーション の主要なコンポーネントは FText
クラスです。次の機能を提供することによりテキスト ローカライゼーションをサポートしているため、すべてのユーザー向けテキストはこのクラスを使用する必要があります。
-
テキストのフォーマット (プレースホルダー パターンからテキストを生成するため)。
-
派生テキストの生成 (テキストを大文字または小文字にするなど)。
FText
にはローカライズされていない、または「インバリアント カルチャ」のテキストを作成する AsCultureInvariant
関数 (または INVTEXT
マクロ) も用意されています。これは、外部 API のプレーヤー名をユーザー インターフェースに表示できる形式に変換する場合などに役立ちます。
「FText::GetEmpty()
」、または単に「FText()
」を使用して空白の FText
を作成することができます。
FString
FName
および FText
とは異なり、FString
は検索、変更、他の文字列との比較が可能です。ただしこれらの操作により、FStrings
は不変の文字列クラスよりもコストがかかる可能性があります。これは、FString
オブジェクトが独自の文字配列を格納するのに対し、FName
オブジェクトと FText
オブジェクトは共有する文字配列へのインデックスを格納し、このインデックス値のみに基づいて等価性を得る可能性があるためです。
Printf
FString
関数のPrintf
は FString
オブジェクトのフォーマット引数指定子を C++ printf
関数として作成することができます。同様に UE_LOG
マクロは、実行中の UE4 ビルドの種類に応じて printf
形式の文字列、ログ アウトプット、ログ ファイルを画面に印字します。
これらの文字列と変換を使用するには、必要なヘッダ ファイルをインクルードする必要があることを覚えておいてください。必要なヘッダ ファイルのリストは、各文字列の API リファレンス ページで確認できます。
変換
|変換元 | 変換先 | 例| |---|------|---------|%fnametofstring% %fnametoftext% %fstringtofname% %fstringtoftext% %ftexttofstring% %ftexttofname% %fstringtoint32% %fstringtofloat% %int32tofstring% %floattofstring%
エンコード
一般的に、文字列変数のリテラルを設定する場合、TEXT() マクロを使用するようにします。TEXT() マクロを指定しない場合、リテラルは ANSI を使用してエンコードされます。 ANSI はサポートされる文字が非常に制限されます。FString に渡された ANSI リテラルは TCHAR (ネイティブの Unicode エンコード) に変換される必要があります。そのため、TEXT() を使用した方が効率的です。
エンコードの詳しい情報は「文字エンコード」を参照してください。