【Unity】TextMeshProについて

皆さん、こんにちは。

ぶんじゃくです。

残暑厳しい中いかがお過ごしでしょうか。

さて、先日最新バージョン(2022.3.7f1)のUnityを使ってやろうと思ったら、

GameObjectから「Text」が消えていたので一瞬戸惑いました。

どうやら、TextMeshProというものを使うようになったようです。

ちなみにTextは、GameObject > UI > Legacy > Text、に残っていますので、まったく使えなくなったわけではないです。

さて、TextMeshProを使うにあたり、いろいろとやることが増えているみたいなのでまとめておきます。

TextMeshPro本体の導入については、今回は省きます。

はじめからこれが導入されているUnityバージョンだとして説明します。


フォントアセットの作成

Textは、例えば適当な.ttfファイルなどをセットしてフォントを使用できたのですが、TextMeshProは「フォントアセット」をセットする必要があります。

まず、Window > TextMeshPro > Font Asset Creator、でFont Asset Creatorを開きます。

Source Font Fileに.ttfなどのフォントファイルをセットします。

Character SetがデフォルトではASCIIになっていると思いますので、これでは日本語等が使用できません。

そこで、Character SetをCustom Charactersにします。

すると、Custom Characters Listというテキストボックスが表示されるようになるため、ここに使いたい日本語を入れます。

が、いちいち「あいうえお、、、」などやっていては日本語の場合きりがないため、以下のサイトからファイルをダウンロードしてきます。

https://gist.github.com/kgsi/ed2f1c5696a2211c1fd1e1e198c96ee4

右上の「Download ZIP」からファイルをダウンロードし、中身を解凍します。

中身のテキストをテキストエディタで開くと、文字が並んだファイルとなっているので、すべてを選択してコピーします。

そして、さきほどのCustom Characters Listのテキストボックスに貼り付け、Generate Font Atlasボタンを押します。

(生成に時間が少しかかりますが待ちましょう。)

完了すると、Generation completed in: ~、と表示されるので、Saveボタンを押してフォントアセットを保存します。

これで、Assetsフォルダ内に新しく.assetフォントファイルが保存されます。

TextMeshProの使用

TextMeshProを使用する場合は、新しくTextMeshProのGameObjectをCreateします。

Inspectorで見ると、TextMeshProコンポーネントがあり、そこにFont Assetという項目があるので、

そこにさきほど作成したフォントアセットをセットします。

テキストボックスに任意の文字列を入れれば、その文字列が表示されるようになります。

ちなみに、スクリプトからこの文字列を変更する場合は、usingにTMProを追加する必要があります。

(スクリプトで具体的にどうやるかは今回は割愛。)


いかがでしたでしょうか。

以前のTextを使うよりも、若干下準備が面倒ではありますが、TextMeshProの方がきれいで見栄えも良く、そしていろいろな設定が可能です。

また、Textがない!詰んだ!とならないよう、この記事が少しでも参考になれば幸いです。

今回は以上になります。

それでは、また。