さけのさかなのブログ

同人ゲーム開発やってます。Unity使ったりする。

TextMeshProでMaterial Iconsを表示する

f:id:enuenupi:20220412113703p:plain

GoogleFontで配布されているMatrialIconsはフォント形式でも配布されており、Unityに組み込むことができる。

1.フォントファイルダウンロード

github.com

ちなみにライセンスはApache License 2.0。

2.TextMeshProの設定

表示させたいアイコンのcode pointをtextに打ち込んでやる(\uを頭につけて)と表示される。

 たとえばSettingsアイコンなら\ue8b8。code pointはMaterial Icons Libraryを見れば書いてある。

TextMeshProのFallback機能を使えば、通常の文字と混ぜて文中に表示することもできる。

複数のフォントを混ぜたときは不自然にならないよう、FontAssetBaselineで表示位置を調整する。

ついでに

ユニコードエスケープ形式で記述した文をパースしたい場合、Regex.Unescapeを使う。(他の諸々のエスケープシーケンスも処理されてしまうんだけど)

var text = @"\uE400";
var unescaped = System.Text.RegularExpressions.Regex.Unescape(text);

TextAssetから読み込んだ文章を使うときなどに。