(:3[kanのメモ帳]

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

(:3[kanのメモ帳]


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


TextMeshProなどのタグ付きテキストを、Consoleのログにそのまま表示する簡単な方法【Unity】【uGUI】【TextMesh Pro】


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


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


はじめに

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


そのテキストのログを普通に出そうとしても、タグの部分は表示されません。

//TMPのテキスト(タグ付き)の内容をログで表示
Debug.Log($"TextMeshProの内容 : {_text.text}");


という事今回はタグ付きテキストを、Consoleのログにそのまま表示する方法の紹介です!


タグ付きテキストを、Consoleのログにそのまま表示する方法

やり方は色々考えられますが、今回はゼロ幅スペース (\u200B)という、

何も表示されないが、存在してるスペースを使います。



具体的には以下のような感じで、タグの<の後と>の前にゼロ幅スペースを足します。

これによりタグが無効化されて、ログに表示されるようになります。(ゼロ幅スペースは表示されない)

Debug.Log($"TextMeshProの内容(そのまま) : {_text.text}");
Debug.Log($"TextMeshProの内容(タグ表示) : {_text.text.Replace("<", "<\u200B").Replace(">", "\u200B>")}");


なお、頻繁に使うようだったらstringの拡張メソッドにするのもオススメです。

/// <summary>
/// タグを無効化した文字列を取得
/// </summary>
public static string GetDisableTagText(this string self) {
  return self.Replace("<", "<\u200B").Replace(">", "\u200B>");//ゼロ幅スペースを挿入することでタグを無効化(ログで表示されるように)
}
Debug.Log($"TextMeshProの内容(タグ表示) : {_text.text.GetDisableTagText()}");