Shader "chicai/Circle" { Properties { _Value("Value",float) = 0.5 _Controll("Vector",vector) = (0,0,0,0) } SubShader { Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct appdata { float4 vertex:POSITION; fixed2 uv:TEXCOORD0; }; struct v2f { float4 position:SV_POSITION; fixed2 uv:TEXCOORD0; }; float _Value; half4 _Controll; v2f vert(appdata IN) { v2f o = (v2f)0; //初始化 有些平台要求 o.position = UnityObjectToClipPos(IN.vertex); o.uv = IN.uv; return o; } float4 frag(v2f IN):SV_TARGET { //length(IN.uv.xy-0.5) 中心向四周变化 //step 中心为1 以外为0 变成纯色圆形 //return step(length(IN.uv.xy-0.5), _Value); //边缘平滑的中心圆计算 return smoothstep(_Controll.x ,_Controll.y, length(IN.uv.xy - 0.5)); } ENDCG } } }