single.php

Unity で部分的に文字が豆腐(□)になる場合の対処法

Unityで、日本語フォントを設定したテキストが部分的に表示されない(□で表示)現象にハマったので対処法を備忘録的に投稿します。

フォントが部分的に表示されない

RPGゲームの会話システムを作っている時に、こんな感じでテキストが表示される現象に遭遇しました。

フォントのAtlas化

調べてみるとUnityの場合、フォントはテクスチャー(つまり画像)になっています。

英語の場合、アルファベットと数字、記号くらいですが、日本語の場合、漢字、ひらがな、カタカナと量が増えます。

なので、用意するテクスチャーも英語フォントに比べると多くなるのは必然です。

このフォントをテクスチャー化する Atlas と言う機能があります。表示したい文字が□で表示されるのは、このテクスチャーに無いのが原因です。

このテクスチャー化を変更する設定が、フォントのインスペクターにあります。

編集したいフォントをプロジェクトで選択して[インスペクター]画面の[Atlas Width]と[Atlas Height]を確認します。

設定されている値が[512]や[1024]であれば、2048などに変更します。

フォントテクスチャーのサイズ不足であれば、実行して文字が正しく表示されます。

[Atlas Width]と[Atlas Height]の数値を変更しても正しく表示されない場合には、[Multi Atlas Texture]を有効にすると改善される場合があります。

まとめ

今回は短い記事ですが、日本語フォントを設定したテキストが部分的に表示されない(□で表示)現象にハマったので対処法について書きました。

日本語フォントを表示する場合、Atlas化する際のテクスチャーの容量不足で正しく表示されない場合があります。

正しく表示されない場合、フォントの[インスペクター]画面で[Atlas Width]と[Atlas Height]の数値を変更する必要があります。

Unityで日本語フォントが正しく表示されない人の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です