【 Unity 】Auto Size を使ってフォントサイズを自動調整しよう【TextMeshPro】

TextMeshProのAuto Size を使ってフォントサイズを自動調整しよう

はじめに

Unity でテキストを扱う際、データによっては文字数が多すぎてテキストの表示領域(Width)を超えてしまい、勝手に改行されるケースがあります。

テキストのオーバーフロー

本記事では文字数に応じて自動でフォントサイズを調整してくれる TextMeshProAuto Size 機能を紹介します。

参考 TextMesh Pro ユーザーガイドunity

バージョン情報

Unity 2020.2.0f1
TextMeshPro 3.0.1

TextMeshPro の Auto Size でフォントサイズを自動調整

Inspector ウィンドウから TextMeshPro のコンポーネントを確認すると「Auto Size」という項目があります。こちらにチェックを入れると、文字数に応じて自動でフォントサイズを調整してくれます。

TextMeshPro の Auto Size

また、Auto Size が有効だと「Auto Size Options」が表示されます。

「Min」「Max」フォントの最小サイズと最大サイズが設定できます。文字数が増えるにつれて Max のフォントサイズから範囲内に収まるように文字の大きさが小さくなっていきます。

Auto Size Options の Min と Max

以下は Auto Size を有効にしている状態です。
文字数が増えても白い範囲内に収まるよう、自動でフォントサイズが調整されているのが分かります。

Auto Size のgif

文字数オーバーした際は末尾を「…」にする方法

TextMeshPro では、文字数が多くなった際に末尾を「…」にする設定があります。これは TextMeshPro の「Overflow」「Ellipsis」にすることで実現可能です。

Overflow の Ellipsis

MEMO
Ellipsis は日本語で省略符号という意味です。

実際に「Overflow」「Ellipsis」に設定したテキストが以下になります。
文字数が溢れた分は「…」という表記になりました。

Overflow の Ellipsis を有効にしたテキストの参考例

終わりに

ゲーム開発において、キャラ名やアイテムの説明文など、文字数がそれぞれ異なるデータが出てくるかと思います。今回紹介した Auto Size はそういったデータを表示する際に有効に活用できるかと思います。

関連資料