TwoTexOffset.shader 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. Shader "Unlit/TwoTexOffset"
  2. {
  3. Properties
  4. {
  5. [HDR] _MainCol("MainCol",color) = (1,1,1,1)
  6. _MainTex("Texture", 2D) = "white" {}
  7. _OffsetSpeed("OffsetSpeed",vector) = (1,1,0,0)
  8. [HDR] _MainCol2("MainCol2",color) = (1,1,1,1)
  9. _MainTex2("Texture2", 2D) = "white" {}
  10. _OffsetSpeed2("OffsetSpeed2",vector) = (1,1,0,0)
  11. }
  12. SubShader
  13. {
  14. Tags {"Queue" = "Transparent" "RenderType" = "Transparent" }
  15. Pass
  16. {
  17. ZTest Off
  18. ZWrite Off
  19. Blend SrcAlpha OneMinusSrcAlpha
  20. CGPROGRAM
  21. #pragma vertex vert
  22. #pragma fragment frag
  23. #include "UnityCG.cginc"
  24. struct appdata
  25. {
  26. float4 vertex : POSITION;
  27. float2 uv : TEXCOORD0;
  28. half4 color : COLOR;
  29. };
  30. struct v2f
  31. {
  32. float4 uv : TEXCOORD0;
  33. float4 vertex : SV_POSITION;
  34. half4 color: TEXCOORD1;
  35. };
  36. sampler2D _MainTex,_MainTex2;
  37. float4 _MainTex_ST,_MainTex2_ST;
  38. half4 _MainCol,_MainCol2;
  39. float4 _OffsetSpeed,_OffsetSpeed2;
  40. v2f vert(appdata v)
  41. {
  42. v2f o;
  43. o.vertex = UnityObjectToClipPos(v.vertex);
  44. o.uv.xy = v.uv * _MainTex_ST.xy + _MainTex_ST.wz + _Time.y * _OffsetSpeed.xy;
  45. o.uv.zw = v.uv * _MainTex2_ST.xy + _MainTex2_ST.wz + _Time.y * _OffsetSpeed2.xy;
  46. o.color = v.color;
  47. return o;
  48. }
  49. half4 frag(v2f i) : SV_Target
  50. {
  51. half4 col = tex2D(_MainTex, i.uv.xy) * _MainCol * i.color;
  52. half4 col2 = tex2D(_MainTex2, i.uv.zw) * _MainCol2 * i.color;
  53. col.rgb *= col.a;
  54. col2.rgb *= col2.a;
  55. col += col2;
  56. col.a = saturate(col.a);
  57. return col*i.color;
  58. }
  59. ENDCG
  60. }
  61. }
  62. }