やりたいこと
UnityでGUIに日本語を表示しようとしたときに□が表示され正しく表示されないときの対処法です。
↑のように表示されます。
対策
TMPでなくLegacyを使用
UnityではTMP(TextMeshPro)とLegacyの2種類の文字のUIが用意されています。
上で書いた問題はTMPで起こるので、代わりにLegacyを使用することで日本語が表示できます。
TMPはLegacyではできないグラデーションなどの表示ができますが、多くのGUIではLegacyで十分なように思いますので、TMPの機能が不要な場合はこの対策で十分です。
(ただしもとから入っているフォントの日本語はかなりいまいちです。Microsoft Yaheiとかいうフォントのようです)
変な例:
フォントの設定
“Unity 日本語 文字化け”で検索するとこちらの方法が出てきます。
TMPのフォントは初期値で日本語で表示できないようなので、表示できるフォントを作成/設定します。
注意
下の記事で紹介されているフォントを含め多くのフォントにはSIL OFLというライセンスが使用されており、無料で使用できますが使用にはライセンス表示が必須です。
TextMeshProで日本語を入力すると文字化けするのと、その解決策。|森菊馬
TextMeshProで日本語使ったら、□□になりました。 こちらに書いてある通りにやったら、日本語が表示できるようになりました。 助かりました。ありがとうございます。 箇条書きで書いておきます。 参考画像 からフォントをダウンロードして、解凍。『Assets』に『Fonts』などの適当なフォルダを作って、...
結果
Unityで日本語の表示方法を2つ紹介しました。
Legacyを使用することで日本語が表示できるようになりました。
いい点:簡単
悪い点:
フォントが変なので別フォントを使用する必要性が高い
高度な表示ができない。
コメント