【Unity】WebGLで日本語テキストが表示されない問題について

UnityのWebGLで日本語テキストが表示されない問題の解決方法を記載します。
Unityエディタ上では日本語テキストが正常に表示されているのに、WebGLでビルドして確認すると表示されない。
私自身調べた内容を忘れそうなので備忘録に残したいと思います。

WebGLで日本語テキストが表示されない

UnityのWebGLプラットフォームで日本語テキストを表示するように実装しても、実際にWebGLでビルドして確認すると日本語が表示されない症状が発生します。

Unity エディタ画面

例として以下のような日本語を含むテキストをシーンに表示させたいと思います。

Unityエディタで日本語テキストを含むシーンを作成

WebGL 実行画面

WebGLで実際に実行してみると日本語が表示されていません。

Unity WebGLで日本語テキストが表示されない

原因

これはUnityではTextコンポーネントのフォントが標準では「Arial」になっているため発生します。
(Arialフォントには日本語文字が含まれていません。)

エディタ上で実行しているときは、なぜ表示されているかというと、Unityエディタではフォントフォールバック機能が働いていますがWebGL上ではフォントフォールバックが機能していないためです。

解決方法

この症状はTextコンポーネントで使用するフォントを日本語文字を含むものを指定すると解消されます。

Noto Sans JP フォントをダウンロード

ここでは、Googleが提供している再配布可能なフォントの「Noto Sans JP」フォントを使用します。

Unityにフォントを組み込んでTextコンポーネントなどで使用する場合は、フォントの再配布を行うことになります。
ビルドしたアプリケーションを配布する際には、フォントが再配布可能かライセンスをよく確認してください。
(「Noto Sans JP」はOpen Font Licenseで提供されており、商用利用、埋め込み可、同梱が可能ですが、ライセンスの明記が必要になります。)

以下からフォントをダウンロードします。
https://fonts.google.com/specimen/Noto+Sans+JP

Noto Sans JP フォントのダウンロードサイト

ダウンロードしたzipファイルを任意のフォルダに解凍しておいてください。

フォントをプロジェクトに追加

解答したフォントデータで使用するフォントデータをプロジェクトに追加します。
(今回は「NotoSansJP-Regular.otf」を追加します)

Unityエディタ プロジェクトにフォントファイルを追加する

Textコンポーネントのフォントを変更

Textコンポーネントの「Font」に先ほど追加したフォントファイルをドラッグ&ドロップします。

Unityエディタ Textコンポーネントのフォントを変更する
Unityエディタ Textコンポーネントのフォント変更完了

修正後の実行画面

日本語を含むフォントに差し替えてWebGLでビルドして実行すると、以下のように正常に日本語のテキストも表示することが可能です。

Unity WebGLで日本語テキストが正常に表示される

よく読まれている記事

コメント

タイトルとURLをコピーしました