MRが楽しい

MRやVRについて学習したことを書き残す

UnityのTextMeshProでフォールバックを使って複数のフォントを合わせて利用する

本日はUnityの小ネタ枠です。
UnityのTextMeshProでフォールバックを使って複数のフォントを合わせて利用する方法です。

フォールバックとは

フォールバックとはメインフォントで表示できない文字がある場合に、別のフォントで表示を試みる機能です。
これにより、異なる言語や特殊な文字を1つのテキスト内で表示することができます。

サンプルシーン

例として以下の英語(英字)、日本語(ひらがな)、中国語(簡体字)を利用するサンプルシーンを用意しました。
TextMeshProのデフォルトのフォントにはひらがなと簡体字が含まれていないため、□文字になっています。



参照フォントの準備

前提条件として今回の場合は別途ひらがなと簡体字を含むフォントを用意する必要があります。
以下の記事で作成した日本語と簡体字フォントをプロジェクトに取り込みました。
bluebirdofoz.hatenablog.com
bluebirdofoz.hatenablog.com

フォールバックの設定方法

フォールバックを設定するメインフォントを選択します。
今回はTextMeshProが利用する以下のデフォルトフォントにフォールバックを設定します。

Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.assets

Assetsフォルダでフォントを選択してInspectorビューを開きます。
[Fallback Font Assets]項目でフォールバックを設定できます。

[+]ボタンを押下して追加した項目にそれぞれ日本語と簡体字フォントの参照を追加します。
これでフォールバックに追加したフォントを参照して日本語(ひらがな)と中国語(簡体字)も表示されるようになりました。