(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!


TextMeshProからタグがない状態のテキストを取得する GetParsedText【Unity】【uGUI】【TextMesh Pro】


このエントリーをはてなブックマークに追加


この記事でのバージョン
Unity 6000.0.34f1


はじめに

UnityのTMP(TextMesh Pro)はタグを使って色々な装飾が出来ます。


そしてtextを参照すると、タグ付きの文字列が取得できます。

//タグ付きの文字列を取得
var text = _tmp.text;


しかし、場合によってはタグがない状態の文字列、

つまり表示されたままのテキストを取得したい場合もありますが、

そんな時はGetParsedTextというメソッドが便利です。

//タグが付いてない文字列を取得
var text = _tmp.GetParsedText();


例えば、タグ付きの文字列を設定したTextMeshProの

textとGetParsedText()を比較してみると以下のような感じに。

Debug.Log($"TextMeshProの内容(タグ付き) : {_tmp.text.Replace("<", "<\u200B").Replace(">", "\u200B>")}");
Debug.Log($"TextMeshProの内容(タグ無し) : {_tmp.GetParsedText().Replace("<", "<\u200B").Replace(">", "\u200B>")}");


なお、ログ(コンソール)には基本タグは表示されないので、

Replaceでタグを無効化しています。

(GetParsedText()はそもそもタグ付いてないので置換もされていないが比較のため一応やっている感じ)