Shader "Custom/ParticleCircle" { Properties{ [HideInInspector] _Tex("Tex",2D) = "white" {} _Color("Color",Color) = (1,1,0,1) _R("R",Range(1,10)) = 1 _MaxAlpha("MaxAlpha",Range(0,1)) = 0.8 } SubShader{ Tags{"Queue" = "Geometry+39"} Blend SrcAlpha OneMinusSrcAlpha Pass{ CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct appdata { float4 vertex:POSITION; float2 uv:TEXCOORD0; }; struct v2f { float4 pos:SV_POSITION; float2 uv:TEXCOORD0; }; float4 _Color; float _MaxAlpha; float _R; v2f vert(appdata v){ v2f o; o.pos = UnityObjectToClipPos(v.vertex); o.uv = v.uv; return o; } float4 frag(v2f i) :SV_Target { float len = length(i.uv*2 - 1); len = lerp(0,_R,len); float4 c = _Color; c.a = clamp(_MaxAlpha - lerp(0,_MaxAlpha,log(len)),0,1); return c; } ENDCG }//Pass }//SubShader FallBack "Diffuse" }