Unity で Text を使っていたつもりが TextMeshPro だった件
完全に趣味ですが、 Unity でPC用の2Dゲームを作っています。
まだまだ作り始めたばかりなので、結構初歩的なところで躓きます。
今回は、メニュー画面から本編の画面に遷移するために、選択中のメニューの文字が強調 (色変更) されるように設定する際にちょっとハマったので備忘録を兼ねて共有します。
結論を言うとものすごく単純で、 Text と TextMeshPro の区別ができていなかったのですね。
TextMeshPro 自体は元々アセットストアにあったアセット群の一つだったようですが、2017年ごろにUnity公式に吸収されたようです。
今の Unity では UI から テキスト用のオブジェクトを作成しようとすると、 選択肢に
「Text - TextMeshPro」
と、
「Legacy > Text」
の2つがあります。
明らかにTextMeshProの方が目立つ配置なので、自分はそもそもこの Legacy > Text の存在に気づいていませんでした。
しかし、例えば 「unity text スクリプト 色」などで Google 検索すると、当然といえば当然ですが Legacy > Text に関する情報がたくさんヒットします。
確かにキャプチャ画像の感じが自分の使っているものとは違うな〜と思いつつもしばらく気づかずに悪戦苦闘していました。
結局はスクリプトで
using TMPro;
を追加し、Text で宣言していたところをTextMeshProUGUI に変更したらうまくできました。
もちろん配置してある TextMeshPro オブジェクトを Legacy > Text に変更する方法もありますが、TextMeshProの方が何かと都合が良さそうなので (ちゃんとは理解していないけど) 上記の方法で対処しました。