UE4ではFString、FText、FNameいずれかのクラスを使い文字列を扱います。
この3つのクラスはどういう違いが合って、どういう場合に使えばよいのか書いていきます。
FString
初めにFStringです。
このクラスは3つの中では、最も使う機会が多いと思います。
主に内部的に文字列操作をする目的で使います。
FStringはデバッグ時にPrintStringノード等で使うことが多いと思いますが、文字を統合したり、一部分だけ取り出したり、文字列操作をする関数は豊富でノードの種類もざっと出しただけでもこれだけあります。
ただ、FStringは他のFName, FTextのような不変文字列クラスに比べて負荷が大きいです。
FText
UIなどでユーザーに表示される文字列はFTextであるべきとされています。
また、FTextはローカライズ用でもあります。
ローカライズについては下記の記事で詳しく解説されていました。m(_ _)m
不変文字列クラスなのでFStringのようにBP上で文字列操作を行うことはできませんが、「Format Text」ノードで文字列内での変数展開ができます。
詳しく書いている方がいらっしゃいました。ありがたや
おまけですが、「Print Text」ノードというのもありPrint Stringと同様、スクリーンとOutput Logにログを出力することができます。
FName
最後にFNameです。
FTextと同じく不変文字列クラスで文字列操作はできません。
主にアセット名やパラメータ名として使われ、パラメータやデータテーブルなど各アセットにアクセスするために用いられます。
また、静的な性質なのでFString、FTextと比べてもアクセスが早く、負荷がとても軽いシステムです。
クラス名 | Bytes |
---|---|
FString | 40 |
FText | 16 |
FName | 4 |
以上がUE4における文字列クラスの用途紹介でした。参考になれば幸いです。
UE Version : 4.16