【Unity-Shader】#08 直線に沿って消えたり出てきたりさせる

上から消えたり下からでてきたり

f:id:snoopopo:20200906104522g:plain

fixed4 frag(v2f i) : SV_Target
{
    fixed4 color = tex2D(_MainTex, i.uv);
    color *= step(_Border, 1-i.uv.y);
    if (color.a <= 0) {
        discard;
    }
    return color;
}

前回▼の記事でやったstep を使い、 閾値(_Border という名前の変数となっている部分) を動的に変えることで、上から消えたり下からでてきたりするアニメが作れそうです。

www.snoopopo.com


ただこれだけだと少し物足りないので今回は直線を表示してそれに沿って消えたり出てきたりさせたいと思います。

直線に沿って表示したり消えたり…

f:id:snoopopo:20200906112806g:plain

fixed4 frag(v2f i) : SV_Target
{
    fixed4 color = tex2D(_MainTex, i.uv);
    color *= 1-(step(_Border, i.uv.y));

    fixed borderSize = 0.05;
    fixed4 borderLine = (step(_Border, i.uv.y + borderSize) * step(i.uv.y + borderSize, _Border + borderSize)) *_Color;

    borderLine.a = color.a;             
    color += borderLine;

    if (color.a <= 0) {
        discard;
    }

    return color;
}