No shadow when applied custom shader

Hello, i have a shader that is supposed to help me with vertex colors where the vertex colors show up in unity. The only problem is that there are no shadows.
7536239--930767--upload_2021-9-30_20-27-3.png
Does anyone know why?

 Shader "Custom/VertexColor" {
     SubShader {
     Pass {
         LOD 200
         
         CGPROGRAM
         #pragma vertex vert
         #pragma fragment frag
 
         struct VertexInput {
             float4 v : POSITION;
             float4 color: COLOR;
         };
         
         struct VertexOutput {
             float4 pos : SV_POSITION;
             float4 col : COLOR;
         };
         
         VertexOutput vert(VertexInput v) {
             VertexOutput o;
             o.pos = UnityObjectToClipPos(v.v);
             o.col = v.color;
             
             return o;
         }
         
         float4 frag(VertexOutput o) : COLOR {
             return o.col;
         }
 
         ENDCG
         }
     }
 
}

7536239--930767--upload_2021-9-30_20-27-3.png
7536239--930767--upload_2021-9-30_20-27-3.png

Correct. There are no shadows because that shader only does one thing. It takes the color from the vertex data and render that.

If you want a shader that supports lighting / shadows / etc you’d need a shader that also calculates all of that. If you’re using the built in renderer, then you’ll want to look into Surface Shaders. Alternatively you can use the built-in “Particles/Standard Surface” shader, which in its default Opaque mode probably does everything you need without you needing to write a new shader.

I don’t know how to do that