NewUnlitShader.shader 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. Shader "Custom/WaveSprite"
  2. {
  3. Properties
  4. {
  5. _MainTex ("Sprite Texture", 2D) = "white" {}
  6. _Amplitude ("Wave Amplitude", Float) = 0.05
  7. _Frequency ("Wave Frequency", Float) = 10
  8. _Speed ("Wave Speed", Float) = 2
  9. }
  10. SubShader
  11. {
  12. Tags { "RenderType"="Opaque" "Queue"="Transparent" }
  13. LOD 100
  14. Pass
  15. {
  16. CGPROGRAM
  17. #pragma vertex vert
  18. #pragma fragment frag
  19. #include "UnityCG.cginc"
  20. struct appdata_t
  21. {
  22. float4 vertex : POSITION;
  23. float2 uv : TEXCOORD0;
  24. };
  25. struct v2f
  26. {
  27. float2 uv : TEXCOORD0;
  28. float4 vertex : SV_POSITION;
  29. };
  30. sampler2D _MainTex;
  31. float _Amplitude;
  32. float _Frequency;
  33. float _Speed;
  34. //float _Time;
  35. v2f vert (appdata_t v)
  36. {
  37. v2f o;
  38. float wave = sin(v.vertex.x * _Frequency + _Time * _Speed) * _Amplitude;
  39. v.vertex.y += wave;
  40. o.vertex = UnityObjectToClipPos(v.vertex);
  41. o.uv = v.uv;
  42. return o;
  43. }
  44. fixed4 frag (v2f i) : SV_Target
  45. {
  46. return tex2D(_MainTex, i.uv);
  47. }
  48. ENDCG
  49. }
  50. }
  51. }