この記事でのバージョン
Unity 2017.4.7f1
はじめに
UnityではText Meshを使うことで、簡単に3D空間上にテキストを表示する事が出来ます。
しかし、デフォルトの状態で使うとオブジェクトの裏から透けて見えてしまいます。
今回はこれをどうにかしようといった感じの記事です。
Text Meshがオブジェクトの裏から透けて見えるのを防ぐ
まずはText Meshに使われてるShaderと同じものを以下からダウンロードしてきます。
(内蔵されているビルドインシェーダーは修正出来ないので)
ダウンロードをしたZipを解凍、中にあるFont.shaderをプロジェクトへ追加し、
ファイル自体の名前と、シェーダーの名前の記述を変更(今回はFontEx)して、
別のシェーダーとして使えるようにします。
そして肝心のシェーダーの修正内容ですが、以下の3つの項目を書き換えるだけ。
Cull Off → Cull Back ZTest Always → ZTest LEqual ZWrite Off → ZWrite On
あとはMaterialを新しく作成し、
Shaderを先程作ったものに変更、使いたいフォントのTextureを設定します。
(内蔵されているArialはTextureを取得出来ないため使えません。)
最後にText MeshにFontを設定してから、Materialを変更すれば、
Text Meshがオブジェクトの裏から透けて見える事がなくなります。
参考