問題
サーフェスシェーダで、半透明なシェーダを作っている際に描画順が崩れた。
元コード↓
Shader "hoge/hoge"
{
Properties
{
}
SubShader
{
ZWrite On
Tags {
"Queue" = "Transparent"
"RenderType" = "Transparent"
}
CGPROGRAM
#pragma surface surf Lambert alpha
struct Input
{
};
void surf (Input IN, inout SurfaceOutput o)
{
}
ENDCG
}
Fallback "Diffuse"
}
解決手段
下記のようにZWrite Onを記述していたところを、Passで囲って下記のようにする。
Pass {
ZWrite On
ColorMask 0
}
コード全体
Shader "hoge/hoge"
{
Properties
{
}
SubShader
{
Pass {
ZWrite On
ColorMask 0
}
Tags {
"Queue" = "Transparent"
"RenderType" = "Transparent"
}
CGPROGRAM
#pragma surface surf Lambert alpha
struct Input
{
};
void surf (Input IN, inout SurfaceOutput o)
{
}
ENDCG
}
Fallback "Diffuse"
}