読者です 読者をやめる 読者になる 読者になる

Unityでの半透明オブジェクトの描画順序の変更

 ガラスなどの半透明オブジェクトの内側に、さらに半透明のオブジェクトなどがある場合に、Unityが描画順序を正しくソートしてくれない事があります。正しい描画順序が予め決まっている場合(例えばガラスビンの中の液体など)は、シェーダーを少しカスタマイズすることで描画順を強制的に設定することが出来ます。
 
 例えば標準の半透明シェーダには

  Tags {"Queue" = "Transparent" ...}

のようなタグが設定してあり、このQueueが描画順序を決定するわけですが、これを

  Tags {"Queue" = "Transparent-1" ...}

のように「-1」を付け加えてあげると、Transparentタグの付いているシェーダが設定されているオブジェクトの直前に描画されます。
(液体の入ったビンの例では、液体は-1のシェーダを設定し、ビンに通常のシェーダを設定すると、必ず液体から先に描画されます)
「+1」を付け加えると、逆にTransparentの「直後」に描画されます。カメラの一番手前に半透明を描画したいときとかですね。
 もちろん+や-のあとの数値は任意に変更出来ます。が、あまり大きな数値だと予め設定してある他の値を飛び越えてしまいますので、注意が必要です。

詳しいことは全部ここに書いてあります。
Unity - ShaderLab syntax: SubShader Tags