【TextMeshPro】既存のTextMeshProのフォントアセットを更新する方法

前提:TextMeshProのフォントアセット?

TextMeshProでフォントを使うには、ttfなどのフォントファイルのままではなく、
TextMeshProのFontAssetCreatorでTextMeshProで使える形式(拡張子は.assetになってる)に変換してから使用する。
今回はこのファイルを更新(新規にフォントを追加したいのではなく)したい場合の手順を記載する。

▼詳細はこちら www.snoopopo.com

なんで更新したいの

フォントアセットを作る際に日本語の場合、そのフォントで表示したい文字を列挙する必要がありますがそこに「髙」を入れていませんでした。
フォントの配布元サイトを確認するとフォントはこの文字に対応しているため、
フォントアセットを作るときに「髙」含めていなかった事が原因でUnityで表示できていません。

▲ない文字は□で表示されてしまいます

※たぬき油性マジック というフォントを使わせて頂きました。 tanukifont.com

既存のTextMeshProのフォントファイルを更新する方法

作成した時と同じようにTextMeshProのFontAssetCreatorを開きます。
既存のフォントアセットは削除しないで下さい。

フォントアセットのGenerationSettingsから転記する

↑のキャプチャまでの設定値は、元のフォントアセットのGenerationSettingsにあります。
なので変えたい部分以外はこの設定値を元に設定していけばOKです。

Character Set について

「Custom Characters」にすると任意の文字を入力できます。基本的に日本語を表示したい場合はこちらの設定をしているかと思います。
「Select Font Asset」には、既存のフォントアセットを指定します。
指定するとCustom CharacterListに作成した時に設定した文字の一覧が自動的に入力されます。

今回はここに「髙」を追加して、Generate Font Atlasボタンを押して作り直します。

既存のフォントアセットを上書きする

フォントファイルができたら、元のフォントアセットを上書きしましょう。
ここで元のフォントアセットと別ファイルにしてしまうと、元々参照していた部分に再設定しないといけないので上書きがよいです。
(例えば以下のようにTextMeshProのコンポーネントに既に指定している場合)

これで「髙」の字を表示することができました!