Text と TextMeshPro の違いを同じ機能の部分のみ簡単にまとめる
UI 表示
TextMeshPro のフォントはズームしてもきれいに表示され
文字の周りをぼかすには Font の SoftNess を変更すればばかすこともできる
Font Atlas
Text
Text の Font Atlas は表示された分だけ記載され
文字サイズが異なった場合でも別のテキストとしてフォントアトラスに書き込まれる
例えば5から5刻みでText を表示させた場合は以下のように複数同じ文字が書き込まれています
UIのテキストサイズが統一されていない場合 FontAtlas のサイズが大きくなってしまう可能性がある
そのため Text を利用する際にはできるだとフォントサイズを決めてUIを設計すべきである
TextMeshPro
事前に FontAtlas を書き出し、Shader でよしなに表示してくれているので FontAtlas のサイズが大きくなることはない
しかし、FontAtlas に予め登録していない文字を表示させることができないため、英数字のみなら手軽だが日本語のように
必要な文字の種類が多い場合は結構無駄が多くなる
一応フォールバックの FontAtlas を指定することができるが、そちらも必要な文字を書き出す必要があるので手間には変わりない
文字色
TextMeshPro はグラデーション表示できる以外は機能に変わりはない
以前記事にもしたが、Text でも拡張をすれば同じようにグラデーションカラーの文字にすることができる
hacchi-man.hatenablog.com
Shadow
Text
Text に Shadow をつけるなら Shadow コンポーネントをつける
これは今表示されているテキストを複製し、頂点カラーによって色を変え座標を変更することで Shadowにしている
そのため、文字数が増えるに従って頂点数が増えていくので大量に文字を出す場合に利用してしまうと負荷が問題になってくる
TextMeshPro
Shadow を出すのは Shader側で行っているため、影を出したとしても頂点が増えることが無い
そのため、文字が増えてたとしても Text と比べて影響は小さい
Outline
Text
Text の Outline は Shadow と似たようなもので、同じ文字を4回描画することで Outline に見えるようにしている
参考画像ではわかりやすいように、ずらす範囲を大きくしている
この Outline は4回の描画のみではきれいに見えないことがあり、さらに Outline コンポーネントを追加する場合がある
Outline が2個ある場合 4 × 4 で 16回も追加で描画してしまうことになる
そのため、Shadow よりも考えて利用する必要がある
TextMeshPro
Shadow と同じく Shader側で Outline の処理を行っているため、負荷が小さい
しかし、文字の枠を内側にも塗りつぶしてしまうため、Text と同じ見た目にならない場合もある