TextMeshProの導入について
使用しているTextMeshProのバージョン
- TextMeshPro 3.0.6
動的にフォントを書き出す
前回は事前に全てのフォントを書き出しておく手順を説明しました。
TextMeshPro
はフォントファイルを使って、アプリケーションの実行時にフォントアセットへフォントを書き出すことも出来ます。
空のフォントアセットを用意する
フォントアセットを選択してFontAsset
を作成します。
作成したFontAsset
を選択し、インスペクタからAtlas Population Mode
をDynamic
にします。
このFontAsset
を使用すると使ってフォントを描画しようとすると、
動的にフォントが書き出されます。
フォントアセットの中身を覗いてみると書き出されているのが確認できます。
ゲーム内でユーザー名を入力できる場合、どの文字が使用されるのか開発時には予想できないので、
そのような場合に有効な手段だと思います。
Staticとの違いについて
Atlas Population Mode
がStatic
の場合、事前に生成したテクスチャが変更されず、含まれている文字しか描画できません。
Dynamic
の場合は、使いたい文字がフォントファイルに含まれている場合実行時に書き込んで使えるようにしてくれます。
一見便利そうですが、書き出す際の負荷もあるでしょうし、
ビルドしたアプリケーションにフォントファイルが含まれアセットとしてロードされるので注意が必要です。
フォールバックについて
TextMeshPro
にはフォールバックという機能があります。
指定したフォントアセットに使いたい文字が含まれていない場合、別のフォントアセットを参照することが出来ます。
Static
とDynamic
のフォントアセットを用意してみました。
Static
の方を選択し、インスペクタからFallback Font Assets
にDynamic
のフォントアセットを指定します。
事前に用意しておいたStatic
のフォントに含まれていなかった文字だけだがDynamic
のフォントアセットに書き込まれます。
「ゲーム中に使用する文字だけを予めStatic
なフォントアセットに入れておきたい」と思った場合に
この構成だと用意していない文字がテストプレイ中にDynamic
なフォントアセットに書き込まれることになるので、
定期的にStatic
側に移していけば最終的にDynamic
には何も書き込まれなくなりますので、
リリース時にはFallbackList
からも削除できます。