【UE4】FString、FText、FNameの違い

UE4ではFStringFTextFNameいずれかのクラスを使い文字列を扱います。

f:id:shuntaendo:20170704040044p:plain

この3つのクラスはどういう違いが合って、どういう場合に使えばよいのか書いていきます。


FString

初めにFStringです。
このクラスは3つの中では、最も使う機会が多いと思います。

主に内部的に文字列操作をする目的で使います。

FStringはデバッグ時にPrintStringノード等で使うことが多いと思いますが、文字を統合したり、一部分だけ取り出したり、文字列操作をする関数は豊富でノードの種類もざっと出しただけでもこれだけあります。

f:id:shuntaendo:20170704041531p:plain

ただ、この文字列操作をすると他のFName, FTextのような不変文字列クラスに比べて負荷が大きくなります。


FText

FText文字列を表示する目的で使います。

UMG等のWidget系で文字列を描画する時はFTextを使わなければなりません。

f:id:shuntaendo:20170704043111p:plain:w450  f:id:shuntaendo:20170704043232p:plain:w450


またランタイム時でローカライズの処理もFTextで行います。

f:id:shuntaendo:20170704043840p:plain


FName

最後にFNameです。

FTextと同じく不変文字列クラスですが、文字列表示では使わず主にアセット名に使います。

パラメータや、データテーブルなど各アセットにアクセスするために用いられます。

また、静的な性質なので負荷がとても軽いシステムです。

クラス名 Bytes
FString 40
FText 16
FName 4




以上がUE4における文字列クラスの用途紹介でした。

ノードによって使うクラスが決まっているのでそのクラスを渡してあげるだけですが、変数を作る時などの参考になれば幸いです。