TexOffsetTowCol.shader 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. Shader "Unlit/TexOffsetTowCol"
  2. {
  3. Properties
  4. {
  5. [HDR]_Col1("Col1",color)=(1,1,1,1)
  6. [HDR]_Col2("Col2",color) = (1,1,1,1)
  7. _MainTex ("Texture", 2D) = "white" {}
  8. _OffsetSpeed("OffsetSpeed",vector) = (1,1,0,0)
  9. _ColorRange("ColorRange",Range(0,1)) = 1
  10. }
  11. SubShader
  12. {
  13. Tags {"Queue" = "Transparent" "RenderType" = "Transparent" }
  14. Pass
  15. {
  16. ZWrite Off
  17. Blend SrcAlpha OneMinusSrcAlpha
  18. CGPROGRAM
  19. #pragma vertex vert
  20. #pragma fragment frag
  21. #include "UnityCG.cginc"
  22. struct appdata
  23. {
  24. float4 vertex : POSITION;
  25. float2 uv : TEXCOORD0;
  26. half4 color : COLOR;
  27. };
  28. struct v2f
  29. {
  30. float4 uv : TEXCOORD0;
  31. float4 vertex : SV_POSITION;
  32. half4 color: TEXCOORD1;
  33. };
  34. sampler2D _MainTex;
  35. float4 _MainTex_ST;
  36. float4 _OffsetSpeed;
  37. float4 _Col1, _Col2;
  38. float _ColorRange;
  39. v2f vert(appdata v)
  40. {
  41. v2f o;
  42. o.vertex = UnityObjectToClipPos(v.vertex);
  43. o.uv.xy = v.uv.xy;
  44. o.uv.zw = v.uv.xy * _MainTex_ST.xy + _MainTex_ST.wz + _Time.y * _OffsetSpeed.xy;
  45. o.color = v.color;
  46. return o;
  47. }
  48. half4 frag(v2f i) : SV_Target
  49. {
  50. float factor = smoothstep(0,_ColorRange,i.uv.x);
  51. half4 col3 = lerp(_Col1,_Col2, factor);
  52. half4 col = tex2D(_MainTex, i.uv.zw) * col3;
  53. return col;
  54. }
  55. ENDCG
  56. }
  57. }
  58. }