Unity でテキストを表示する際、文字数が多い場合に設定した表示領域から文字がはみ出てしまいます。本記事では、TextMesh Pro で表示領域からはみ出たテキストを「…」で省略する方法を紹介します。
TextMesh Pro とは、Unity uGUI の Text ではできないリッチなテキスト表現を実現できるテキストアセットです。
開発環境
Unity 2020.3.1f1
TextMeshPro 3.0.1
はみ出たテキストを「…」で省略する方法
UI から TextMesh Pro の Text を生成します。
![TextMesh Pro の生成](http://www.midnightunity.net/wp-content/uploads/2021/07/create-textmeshpro.png)
Unity の Inspector ビューにて TextMeshPro のコンポーネントを確認すると、デフォルトで 「Wrapping」の設定が「Enabled」、「Overflow」の設定が「Overflow」になっています。
![TextMesh Pro の Wrapping と Overflow 設定](http://www.midnightunity.net/wp-content/uploads/2021/07/textmeshpro-wrappong-overflow-.png)
「Wrapping」はテキストを折り返すかどうかの設定で、「Enabled」で文字の折り返しが有効になり表示領域の幅からはみ出ないよう自動的に改行されます。
以下の画像は文字数が多いためテキストが表示領域の高さをはみ出てしまった例です。
![TextMesh Pro で overflow したテキスト](http://www.midnightunity.net/wp-content/uploads/2021/07/text-overflow.png)
はみ出たテキストを「…」で省略するには、「Overflow」の設定を「Ellipsis」に変更します。
![TextMesh Pro の Ellipsis](http://www.midnightunity.net/wp-content/uploads/2021/07/textmeshpro-ellipsis.png)
以下の画像が「Ellipsis」を設定した例です。
文字列の末尾が「…」に変わり、表示領域に収まるようになりました。
![TextMesh Pro で Ellipsis 設定したテキスト](http://www.midnightunity.net/wp-content/uploads/2021/07/textmeshpro-ellipsis-text.png)
テキスト範囲の高さ(Height)を大きくすると、複数行入るようになり、最終行の末尾が「…」になります。
![TextMesh Pro で Ellipsis 設定した2行分のテキスト](http://www.midnightunity.net/wp-content/uploads/2021/07/textmeshpro-ellipsis-text-two-lines.png)
関連記事
TextMeshPro で使えるリッチテキストタグまとめ【Unity】
【 Unity 】Auto Size を使ってフォントサイズを自動調整しよう【TextMeshPro】
TextMesh Pro で日本語フォントを使う方法【Unity】