63 lines
2.3 KiB
Plaintext
63 lines
2.3 KiB
Plaintext
Shader "BumpCombat/Comparison Sprite Depth"
|
|
{
|
|
Properties
|
|
{
|
|
[PerRendererData] _MainTex ("Existing sprite texture", 2D) = "white" {}
|
|
_BaseColor ("Tint", Color) = (1,1,1,1)
|
|
_Cutoff ("Alpha clip", Range(0,1)) = 0.4
|
|
[Enum(UnityEngine.Rendering.BlendMode)] _SrcBlend ("Source blend", Float) = 1
|
|
[Enum(UnityEngine.Rendering.BlendMode)] _DstBlend ("Destination blend", Float) = 0
|
|
[Toggle] _ZWrite ("Depth write", Float) = 1
|
|
}
|
|
SubShader
|
|
{
|
|
Tags { "RenderPipeline"="UniversalPipeline" "RenderType"="TransparentCutout" "Queue"="AlphaTest" }
|
|
Pass
|
|
{
|
|
Name "ComparisonUnlit"
|
|
Tags { "LightMode"="UniversalForward" }
|
|
Cull Off
|
|
ZTest LEqual
|
|
ZWrite [_ZWrite]
|
|
Blend [_SrcBlend] [_DstBlend]
|
|
HLSLPROGRAM
|
|
#pragma vertex Vert
|
|
#pragma fragment Frag
|
|
#pragma multi_compile_instancing
|
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/Core2D.hlsl"
|
|
struct Attributes
|
|
{
|
|
float3 positionOS : POSITION;
|
|
float2 uv : TEXCOORD0;
|
|
half4 color : COLOR;
|
|
UNITY_VERTEX_INPUT_INSTANCE_ID
|
|
};
|
|
struct Varyings { float4 positionCS : SV_POSITION; float2 uv : TEXCOORD0; half4 color : COLOR; };
|
|
TEXTURE2D(_MainTex);
|
|
SAMPLER(sampler_MainTex);
|
|
CBUFFER_START(UnityPerMaterial)
|
|
half4 _BaseColor;
|
|
half _Cutoff;
|
|
CBUFFER_END
|
|
Varyings Vert(Attributes input)
|
|
{
|
|
Varyings output;
|
|
UNITY_SETUP_INSTANCE_ID(input);
|
|
SetUpSpriteInstanceProperties();
|
|
input.positionOS = UnityFlipSprite(input.positionOS, unity_SpriteProps.xy);
|
|
output.positionCS = TransformObjectToHClip(input.positionOS.xyz);
|
|
output.uv = input.uv;
|
|
output.color = input.color;
|
|
return output;
|
|
}
|
|
half4 Frag(Varyings input) : SV_Target
|
|
{
|
|
half4 color = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, input.uv) * input.color * _BaseColor;
|
|
clip(color.a - _Cutoff);
|
|
return color;
|
|
}
|
|
ENDHLSL
|
|
}
|
|
}
|
|
}
|