どのプラットフォームでも同じフォントを使用できるようにする
現在表示しているページは選択中の表示言語には対応しておりません。
検証環境
- Windows
-
- Windows 11
- Unity エディター
-
- 2020.3.25f1
この Tips の前提設定
この Tips の説明の前提として以下の設定を事前に行っています。
Unity で使用できるフォントについて
Unity でデフォルトで使用できるフォントは Arial
のみです。Arial
は英語のみであり、日本語などは含まれていません。
Windows での開発やゲーム実行では日本語が表示されていますが、
これは OS 側でフォントに存在しない文字が使用された場合は MS Pゴシック
などに置き換える処理などが入るためです。
ためしに WebGL で Arial
フォントで日本語を表示しようとした場合、フォントの置き換え処理は発生しないので日本語はまったく表示されなくなります。
そのため基本的にはゲーム用にフォントを用意し、フォントをゲームに同梱して使用するというのが定番かと思います。
当サンプルで使用するフォント
衡山毛筆フォント行書
を使用しています。以下のサイトからダウンロード可能です。
フォントの使用ライセンスについて
選んだフォントがどのように使用していいかについてはフォントごとに決まっています。 必ず利用規約などを読んだうえで「ゲームに使用できるか」「有料ゲームとして配布可能か」などを確認してください。
フォントを Unity プロジェクトに組み込む
使用する任意のフォントファイルを用意します。
これをプロジェクトにドロップします。今回はサンプルなので Scenes
フォルダに直接入れていますが、
それなりの規模になるゲームならばフォルダ分けをきちんと行ってください。
テキストを扱うオブジェクトを選択します。
インスペクターの Text
コンポーネントに「フォント」があるので、右にあるボタンから選択するかプロジェクトに入れたフォントをドロップして設定してください。
するとエディタ上のテキストのフォントが変わります。 今回使っているフォントは日本語と英語専用なので他の言語の表示がおかしいですが、フォント自体は正しく適用されていることを確認できます。
プロジェクトに入れたフォントはゲームに組み込まれるため、どの環境でも指定したフォントを使用することが可能です。 WebGL で実行しても日本語は正しく表示されています。