unity shader 流水效果

改變uv 座標值,去掉白色,透明

Shader "Custom/UVOffset" {
    Properties{
        _Color("Main Color", Color) = (1,1,1,1)
        _MainTex("Base (RGB) Trans (A)", 2D) = "white" {}
    _WhiteRange("WhiteRange",float) = 0.7

        _USpeed("USpeed ", float) = 1.0
        _UCount("UCount", float) = 1.0
        _VSpeed("VSpeed", float) = 1.0
        _VCount("VCount", float) = 1.0
    }

        SubShader{
        Tags{ "Queue" = "Transparent" "IgnoreProjector" = "True"      "RenderType" = "Transparent" }
        ColorMask 0

        CGPROGRAM
#pragma surface surf Lambert alpha
        sampler2D _MainTex;
    fixed4 _Color;
    float _WhiteRange;

    // U軸方向滾動速度
    float _USpeed;
    // U軸方向平鋪個數
    float _UCount;

    // V軸方向滾動速度
    float _VSpeed;
    // V軸方向平鋪個數
    float _VCount;
    struct Input {
        float2 uv_MainTex;
    };

    void surf(Input IN, inout SurfaceOutput o) {
        fixed4 c = tex2D(_MainTex, IN.uv_MainTex);

        float2 uv = IN.uv_MainTex;
        float detalTime = _Time.x;

        //  計算X軸方向變化
        uv.x -= detalTime * _USpeed;
        uv.x *= _UCount;

        // 計算Y軸方向變化
        uv.y += detalTime * _VSpeed;
        uv.y *= _VCount;

        half4 c2 = tex2D(_MainTex, uv);
        o.Albedo = c2.rgb;
        o.Alpha = c2.a;

        o.Albedo = c2.rgb;

        if (c2.r >= _WhiteRange && c2.g >= _WhiteRange && c2.b >= _WhiteRange)//判斷RGB的值接近白色//
        {
            o.Alpha = 0;
        }
        else
        {
            o.Alpha = 1;
        }
        o.Emission = c2*_Color;

    }
    ENDCG
    }

        Fallback "Legacy Shaders/Transparent/VertexLit"
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章