Applying a shader stretches the sprite?

I am trying to apply a material with a shader to a sprite, but when doing so, the sprite comes out stretched. It looks like the transparent parts of the sprite are being filled in with some of the colors, so it looks like a blob.

Here is what the sprite looks like without the shader:


Here is what it looks like with the shader applied:


Finally, here is the code of the shader:

// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'

Shader "Custom/StencilObject"
		[PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
		_Color ("Tint", Color) = (1,1,1,1)
		[MaterialToggle] PixelSnap ("Pixel snap", Float) = 0


		Stencil {
			Ref 1
			Comp equal

		Cull Off
		Lighting Off
		ZWrite Off
		Blend One OneMinusSrcAlpha

			#pragma vertex vert
			#pragma fragment frag
			#pragma multi_compile _ PIXELSNAP_ON
			#pragma shader_feature ETC1_EXTERNAL_ALPHA
			#include "UnityCG.cginc"
			struct appdata_t
				float4 vertex   : POSITION;
				float4 color    : COLOR;
				float2 texcoord : TEXCOORD0;

			struct v2f
				float4 vertex   : SV_POSITION;
				fixed4 color    : COLOR;
				float2 texcoord  : TEXCOORD0;
			fixed4 _Color;

			v2f vert(appdata_t IN)
				v2f OUT;
				OUT.vertex = UnityObjectToClipPos(IN.vertex);
				OUT.texcoord = IN.texcoord;
				OUT.color = IN.color * _Color;
				#ifdef PIXELSNAP_ON
				OUT.vertex = UnityPixelSnap (OUT.vertex);

				return OUT;

			sampler2D _MainTex;
			sampler2D _AlphaTex;

			fixed4 SampleSpriteTexture (float2 uv)
				fixed4 color = tex2D (_MainTex, uv);

				// get the color from an external texture (usecase: Alpha support for ETC1 on android)
				color.a = tex2D (_AlphaTex, uv).r;

				return color;

			fixed4 frag(v2f IN) : SV_Target
				fixed4 c = SampleSpriteTexture (IN.texcoord) * IN.color;
				c.rgb *= c.a;
				return c;

I would be grateful for any help.

It seems I’m a little late but in the shader editor you have to connect the “A” value of the Sample Texture into the “Alpha” value of the Fragment