以下の内容はhttps://bluebirdofoz.hatenablog.com/entry/2025/08/18/234945より取得しました。


Unityで常に前面に描画するシェーダを作成する

本日はUnityの小ネタ枠です。
Unityで常に前面に描画するシェーダを作成する方法です。

ZWrite

レンダリング時に深度バッファのコンテンツを更新するかどうかを設定します。
ZWriteを無効にすると深度の順序付けが行われなくなり、手前にコンテンツが存在しても描画行われるようになります。
docs.unity3d.com

常に前面に描画するシェーダを作成する

以下のサンプルシーンを作成しました。
Cubeオブジェクトの背後にあるSphereオブジェクトを常に前面に表示させてみます。

シェーダを作成します。今回はUnlitシェーダを元にします。
Assetsフォルダ内で右クリックから[Create -> Shader -> Unlit Shader]を実行してUnlitシェーダのテンプレートを作成します。

作成したシェーダに名前を付けてファイルを開きます。

Pass構文配下に以下のZWriteを無効化する設定を追記します。

ZTest Always
ZWrite Off

Sphereオブジェクトのマテリアルに作成したシェーダを設定します。
これでSphereオブジェクトが常に前面に表示されるようになります。

以下のように一部の描画が消えてしまう場合があります。
これはRenderQueueの設定による別描画の上書きが原因であることが考えられます。

RenderQueueの数値を上げると描画順が後の方になり、前面に表示されるようになります。




以上の内容はhttps://bluebirdofoz.hatenablog.com/entry/2025/08/18/234945より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14