夏が来る
以前から「夏に向けてゲームを作る」と言っておきながらちっとも完成せずに、そのくせ週末は中世対馬の亡霊となって島を占領した蒙古兵をバッタバッタと闇討ちのチキンプレイで倒し回っていた皆さんこんにちは。
Ghost of Tushimaが時間泥棒過ぎて睡眠不足です。
TextMesh
UnityでTextMeshが標準搭載されてからはUIのテキストにはもっぱらTextMeshを使用しています。
色々な装飾ができて何かと有用なTextMeshなんですが、不便な点もあって、その一つが「一部の装飾の設定がMaterialに準ずる」という点
例えばOutlineやGrowなどはフォントのMatrialで設定しますが、このMaterialの設定を変えると当然のことながら同じフォントMaterialを使用している全てのTextMeshの表示も変わってしまいます。
通常ならMaterialをコピーして対応しますが、TextMeshで使用しているMaterialはフォント自体のデータも含んでいるため、これをホイホイと増やすしていくとアプリ容量が大変なことになります。
そんな時に使用するのがMaterial Presetとなっています。
Material Preset
例えば、同じフォントを使用していてもこの部分は文字にアウトラインを表示させたい、とか、光っているように見せたい、という場合はこのMaterial Presetを追加し、装飾をしたいTextMeshにだけそのMaterial Presetを使うように設定してFaceやOutLine等を変更する、という手順を踏みます。
このMaterial PresetはMain Settings欄にて変更することができます。
しかし、このドロップダウンには現在あるMaterial Presetが表示されるのみで新たに追加することはできません。
新たにMaterial Presetを追加するには、フォントMaterialのInspectorで右クリックしてコンテキストメニューを表示する必要があります。(ややこしい)
コンテキストメニューのCreate Preset Materialを選択するとフォントアセットと同じディレクトリに新しいMaterial Presetが作成されるので、分かりやすい名前をつけておきます。
その後、先ほどのTextMeshのInspectorに戻ってMain Settings欄を確認するとMaterial Presetが変更できるようになります。
この手順、意外と忘れるんですよね~。