はじめに
TextMeshProでアウトラインを付けるためパラメータを色々触っていたのですが、他のTextMeshProにも変更が反映されてしまったため、その解決方法を記載します。
環境
OS : Windows10
Unity バージョン : 2021.3.2f1
TextMeshProを利用したアウトラインの付け方
TextMeshProのInspectorの下に行くと、以下のようにMaterialが色々と設定できるようになっています。
今回は、アウトラインを付けたいのでOutlineに✓を入れます。
アウトラインの色は黒とし、Thicknessを動かすことでアウトラインの太さが変化します。
他のTextMeshProにも変更が反映される問題
今度は、もう一行アウトラインを付けたくないText Mesh Proを作成します。
しかし、最初のTextMeshProでアウトラインを付けてしまっているため、Thicknessを変化させると変更してほしくないTextMeshProにまでアウトラインが付いてしまいます。
解決方法
TextMeshProのMaterial Presetを作成することで解決できます。
Material Presetとは、TextMeshProの装飾の設定を保持するファイルになります。
Material Presetを作成することで、Textごとにアウトラインの太さなどを変更できるようになります。
以下手順になります。
- TextMeshProのFont Assetをクリックし、設定されているFont Assetまで飛びます。
- Font Assetを展開すると先程設定したThicknessの情報を保持したMaterialが表示されます。
- Inspector右上の設定を開いて、Create Material Presetを選択します。
- Font Asset外にMaterial Presetが作成されます。
Material Presetの名前を変更する場合はFont Asset名を含めるようにしてください。ここで作成したMaterial Preset名にFont Asset名が含まれていないと以降の手順で問題が起こります。
- アウトラインを付けたくないTextMeshProのInspectorまで移動し、先ほど作成したMaterial Presetを選択します。
手順4でMaterial Preset名をFont Asset名の含んでいない名前に設定すると、Font Assetの選択欄に表示されなくなってしまいます。
- これで変更したいTextMeshProのみ変更が反映されるようになります。
まとめ
TextMeshProでOutlineを変更した際に、他のTextMeshProにまで反映されてしまう問題は、Material Presetを作成し、装飾の設定を複数持つことで解決できます。