1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
Shader "AP01/L19/Translation" { Properties { _MainTex ("RGB:颜色 A:透贴", 2d) = "gray"{} _Opacity ("透明度", range(0, 1)) = 0.5 _MoveRange ("移动范围", range(0.0, 3.0)) = 1.0 _MoveSpeed ("移动速度", range(0.0, 3.0)) = 1.0 } SubShader { Tags { "Queue"="Transparent" // 调整渲染顺序 "RenderType"="Transparent" // 对应改为Cutout "ForceNoShadowCasting"="True" // 关闭阴影投射 "IgnoreProjector"="True" // 不响应投射器 } Pass { Name "FORWARD" Tags { "LightMode"="ForwardBase" } Blend One OneMinusSrcAlpha // 修改混合方式One/SrcAlpha OneMinusSrcAlpha CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" #pragma multi_compile_fwdbase_fullshadows #pragma target 3.0 // 输入参数 uniform sampler2D _MainTex; uniform float4 _MainTex_ST; uniform half _Opacity; uniform float _MoveRange; uniform float _MoveSpeed; // 输入结构 struct VertexInput { float4 vertex : POSITION; // 顶点位置 总是必要 float2 uv : TEXCOORD0; // UV信息 采样贴图用 }; // 输出结构 struct VertexOutput { float4 pos : SV_POSITION; // 顶点位置 总是必要 float2 uv : TEXCOORD0; // UV信息 采样贴图用 }; // 声明常量 #define TWO_PI 6.283185 // 顶点动画方法 void Translation (inout float3 vertex) { vertex.y += _MoveRange * sin(frac(_Time.z * _MoveSpeed) * TWO_PI); } // 输入结构>>>顶点Shader>>>输出结构 VertexOutput vert (VertexInput v) { VertexOutput o = (VertexOutput)0; Translation(v.vertex.xyz); o.pos = UnityObjectToClipPos(v.vertex); // 顶点位置 OS>CS o.uv = TRANSFORM_TEX(v.uv, _MainTex); // UV信息 支持TilingOffset return o; } // 输出结构>>>像素 half4 frag(VertexOutput i) : COLOR { half4 var_MainTex = tex2D(_MainTex, i.uv); // 采样贴图 RGB颜色 A透贴 half3 finalRGB = var_MainTex.rgb; half opacity = var_MainTex.a * _Opacity; return half4(finalRGB * opacity, opacity); // 返回值 } ENDCG } } } |
本站所有文章、资源、如无特殊说明或标注互联网转载外, 均为本站以及特邀作者、注册会员、游客投稿原创发布. 所提供下载链接均为站外链接, 网站本身并不存储相关资源文件, 所有资源仅用于个人学习及研究使用, 请在24小时内删除, 切勿用于商业用途, 如产生法律纠纷本站概不负责, 任何个人或组织, 在未征得本站同意时, 禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台. 如若本站内容侵犯了原著者的合法权益, 请及时通知本站, 待核实后将在三个工作日内进行删除.