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からも削除できます。
🗒️次の記事
📣おしらせ!
Unity Asset Storeで GROW YOUR GARDEN セール が開催中です。
農業関係のアセットなどが最大50%OFFでセール中です。