Files
zeling_v2/Assets/PathBerserker2d/Shaders/UnlitSegmented.shader
2026-05-08 11:04:00 +08:00

58 lines
1.4 KiB
Plaintext

Shader "Hidden/PB_UnlitSegmented"
{
Properties
{
_SegmentSize ("Segment Size", Float) = 0.14
_PauseSize ("Pause Size", Float) = 0.14
_XOffset ("X Offset", Float) = 0
_Color ("Color", Color) = (0, 0, 1, 1)
}
SubShader
{
Tags {"Queue" = "AlphaTest" "IgnoreProjector" = "True" "RenderType" = "TransparentCutout"}
LOD 100
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
};
struct v2f
{
float4 vertex : SV_POSITION;
float4 worldPos : TEXCOORD1;
};
float _SegmentSize;
float _PauseSize;
float _XOffset;
half4 _Color;
v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.worldPos = mul(unity_ObjectToWorld, v.vertex);
return o;
}
fixed4 frag (v2f i) : SV_Target
{
float seg = step(frac((i.worldPos.x - i.worldPos.y + _XOffset) / (_SegmentSize + _PauseSize)) * (_SegmentSize + _PauseSize), _SegmentSize);
half4 c = lerp(half4(0, 0, 0, 0), _Color, seg);
clip(c.a - 0.5);
return c;
}
ENDCG
}
}
}