Multiple objects lighting wall that is otherwise transparent

I am working on a game where many objects may get near a boundary, or wall that would just be a plane that has a grid texture applied. I made a frag shader that makes a spotlight in a way where given a world position, it shows full opacity of the texture at that world location and then fades to transparency from there. Kind of like a spot light that shows the texture that as the light fades, the texture becomes transparent (see picture). My problem is that I want this wall or boundary to support having many objects (maybe up to 100 or 200) that when near it, it shows the texture in that way, but keep them synced up like it was just multiple spot lights on a wall with a grid texture. The objects near the wall will be moving around, the wall is there to show a boundary when they get close. I searched and found that I can in fact have arrays in the shader, and I could set the array via scripting of the positions, but to be honest, I don’t know how to properly implement a for loop in the shader without messing it up the shader (not too experienced with shaders is what I mean) and due to “unrolling” by the compiler, my array of possible positions is limited, which is not idea. So I’m asking does anyone have any ideas or solutions for the effect I’m trying to create, but falling short of?

The white is just the clear color. It is a plane with a grid texture and shader mentioned above and written below.

// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'

Shader "Unlit/TextureSpotLight"
{
	Properties
	{
		_MainTex("Texture", 2D) = "white" {}
		_Tint("Tint", Color) = (1.0, 1.0, 1.0, 1.0)
		_SpotPos("Spotlight Position & Size", vector) = (0, 0, 0, 1)
		_FallOff("Fall off rate", float) = 5.0

	}
		SubShader
	{
		Tags{ "RenderType" = "Transparent" "Queue" = "Transparent" }
		LOD 100

		Blend srcAlpha oneMinusSrcAlpha
		ZWrite Off
		Pass
	{
		CGPROGRAM
#pragma vertex vert
#pragma fragment frag

#include "UnityCG.cginc"

		struct appdata
	{
		float4 vertex : POSITION;
		float2 uv : TEXCOORD0;
	};

	struct v2f
	{
		float2 uv : TEXCOORD0;
		float4 vertex : SV_POSITION;
		float3 worldPos : TEXCOORD1;
	};

	sampler2D _MainTex;
	float4 _MainTex_ST;
	float4 _SpotPos;
	float4 _Tint;
	float _FallOff;
	float3 _Positions[10];

	v2f vert(appdata v)
	{
		v2f o;
		o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
		o.uv = TRANSFORM_TEX(v.uv, _MainTex);
		o.worldPos = mul(unity_ObjectToWorld, v.vertex).xyz;
		return o;
	}

	fixed4 frag(v2f i) : SV_Target
	{
		// sample the texture
		fixed4 col = tex2D(_MainTex, i.uv) * _Tint;
		float3 offset = _SpotPos.xyz - i.worldPos;
		float range = dot(offset, offset) / (_SpotPos.w * _SpotPos.w);
		range = 1.0f - saturate(range);
		range *= range * _FallOff; // this multiplier controls the sharpness of the fade around the edge.               
		col.a *= saturate(range);
	return col;
	}
		ENDCG
	}
	}
}

Try messing with the shader properties in unitys shader area
it has settings for this and especially for reflections