14 lines
1.0 KiB
Plaintext
14 lines
1.0 KiB
Plaintext
Shader "Handbook/ArenaRange" {
|
|
Properties { _Color("Color",Color)=(1,1,1,1) }
|
|
SubShader { Tags {"Queue"="Transparent" "RenderType"="Transparent"} Cull Off ZWrite Off Blend SrcAlpha OneMinusSrcAlpha
|
|
Pass { CGPROGRAM
|
|
#pragma vertex vert
|
|
#pragma fragment frag
|
|
#include "UnityCG.cginc"
|
|
struct app {float4 vertex:POSITION;float4 color:COLOR;float2 uv:TEXCOORD0;};
|
|
struct v2f {float4 position:SV_POSITION;float2 world:TEXCOORD0;float4 color:COLOR;float2 uv:TEXCOORD1;};
|
|
float4 _Color,_ArenaCenter,_Tower,_Forward;float _ArenaRadius,_Fill,_Minimum,_Maximum,_CosHalf,_Dashed;
|
|
v2f vert(app v){v2f o;o.position=UnityObjectToClipPos(v.vertex);o.world=mul(unity_ObjectToWorld,v.vertex).xy;o.color=v.color*_Color;o.uv=v.uv;return o;}
|
|
fixed4 frag(v2f i):SV_Target {clip(_ArenaRadius-distance(i.world,_ArenaCenter.xy));if(_Fill>.5){float2 d=i.world-_Tower.xy;float r=length(d);clip(r-_Minimum);clip(_Maximum-r);clip(dot(d/max(r,.00001),_Forward.xy)-_CosHalf);return fixed4(.25,.65,.9,.07);}if(_Dashed>.5)clip(frac(i.uv.x*48)-.4);return i.color;}
|
|
ENDCG } } }
|