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