MRが楽しい

MRやVRについて学習したことを書き残す

ワールドスペースのTextMeshProのテキストを常に全面に表示する

本日は TextMeshPro の小ネタ枠です。
ワールドスペースのTextMeshProのテキストを常に全面に表示する方法を記事にします。

サンプルシーン

TextMeshProのテキストオブジェクトをワールドスペースで利用するサンプルシーンを作成しました。

ワールドスペースで利用しているため、そのままだとテキストは3Dオブジェクトに遮蔽されます。
今回はこのテキストを常に全面に表示する方法を試します。

テキストを常に前面に表示する

TextMeshPro のテキストを常に前面に表示するには TextMeshPro/Distance Field Overlay シェーダを利用します。
Text オブジェクトの Inspector を開き、[shader]のプルダウンを開きます。

[TextMeshPro/Distance Field Overlay]のシェーダを選択します。
これでテキストが常に前面に表示されるようになります。

Font Asset共有の注意点

シェーダの変更は Font Asset で共有されているため、同じアセットを利用している他の Text オブジェクトも影響を受ける点に注意してください。


前面に表示する Text と表示しない Text を分けたい場合は Font Asset を[Ctrl+D]キーでコピーして別々のアセットを作成します。

前面に表示したい Text の[Font Asset]に作成した Font Asset を設定します。

この状態で[Shader]を TextMeshPro/Distance Field Overlay シェーダに差し替えれば、前面に表示する Text と表示しない Text を分けられます。