uGUIのTextでビットマップフォント(フォントアトラス)を使う方法です。
Unityのバージョンは5.0.0f4です。
uGUIのTextコンポーネントのFontにカスタムフォントを指定すると表示出来ます。
カスタムフォントについては以下のページの下の方に説明があります。
Unity -Manual:Font - https://docs.unity3d.com/Manual/class-Font.html
uGUIのTextコンポーネントのFontにカスタムフォントを指定すると表示出来ます。
カスタムフォントについては以下のページの下の方に説明があります。
Unity -Manual:Font - https://docs.unity3d.com/Manual/class-Font.html
見た目はあまり変わりませんが、
上がビットマップフォントが適用されたTextコンポーネントで、
下がttfファイルをそのまま指定した場合のダイナミックフォントです。
今回使ったフォントは自家製 Rounded M+になります。
自家製 Rounded M+ - https://jikasei.me/font/rounded-mplus/
ビットマップフォントの生成はBMFont(Bitmap Font Generator)を使用します。
BMFontからは以下の設定で出力しました。BMFontで出力した.fontファイルから、テキストのuv情報をUnityのカスタムフォントに適用させるため、以下のEditor拡張を使わせてもらいます。
●手順●
1.ChrRectSet.csをEditorフォルダ配下に、
BMFontで吐き出されたpngとfontファイル(拡張子を.txtに変更)を適当な箇所にインポートする。
テクスチャのインポート設定は以下のようにしました。2.UnityEditorのProjectView上で右クリック→「Create」→「Custom Font」を指定してカスタムフォントを作る。
3.カスタムフォントに割り当てるマテリアルを新規作成する。
シェーダーはなんでもよいが「Unlit/Texture」にしておく。
シェーダーはなんでもよいが「Unlit/Texture」にしておく。
カスタムフォントのDefaultMaterialにマテリアルを設定。
4.メニューから「Custom」→「Custom Font Setting」→「ChrRectSet」を選択し、
カスタムフォントにuv設定を反映させる。
カスタムフォントにuv設定を反映させる。
詳しい手順はChrRectSet.cs-使い方を参照。
5.カスタムフォントのAscii Start Offsetに、使う文字の一番最初のASCIIコードを入力。
LineSpacingに改行時のスペースサイズを入力。
通常はビットマップフォント作成時のフォントサイズで良いかと思う。
6.uGUIのTextコンポーネントのFontに↑で作ったカスタムフォントを指定する。
6.uGUIのTextコンポーネントのFontに↑で作ったカスタムフォントを指定する。
カスタムフォントの場合はfont sizeを変更しても反映されないため、
サイズ変更はスケーリングで行う必要がある。
サイズ変更はスケーリングで行う必要がある。
以下のコンポーネントを付ければ、BMFontで設定したフォントサイズを元にスケーリングできる。
Textを作って、カスタムフォントを適用して、BitmapFontScalerをアタッチする流れを
自動化したEditorスクリプトも作ったので、Editorフォルダ配下に入れておくと便利。
自動化したEditorスクリプトも作ったので、Editorフォルダ配下に入れておくと便利。
右クリック→「UI」→「Bitmap Font Text」で上記のテンプレGameObjectが作られる。
DEFAULT_FONT_PATHを適宜変更して使用する。※カスタムフォントは内部で文字ごとのuv座標をすべて持っているので、文字数に比例してデータサイズが大きくなります。
(半角文字すべて+かなカナ+第一水準漢字+全角記号で約1MB)