I need help with making 2 custom shaders work with URP 7.3.1

I have 2 Custom shaders that aren’t made for URP and I just want to know how to make them compatible with URP.

Shader "Custom/TerrainShader"
{
    Properties{
        _Color("Color", Color) = (1,1,1,1)
        _MainTex("Albedo (RGB)", 2D) = "white" {}
        _Glossiness("Smoothness", Range(0,1)) = 0.5
        _Metallic("Metallic", Range(0,1)) = 0.0
    }
    SubShader{
        Tags{ "RenderType" = "Opaque"}
        LOD 200
        Blend SrcAlpha OneMinusSrcAlpha

        CGPROGRAM
        #pragma surface surf Standard fullforwardshadows addshadow
        #pragma target 3.0

        sampler2D _MainTex;

        struct Input {
            float2 uv_MainTex;
            float4 color : Color;
        };

        half   _Glossiness;
        half   _Metallic;
        fixed4 _Color;
        half   _Alpha;

        void surf(Input IN, inout SurfaceOutputStandard o)
        {                       
            fixed4 c = IN.color;

            o.Albedo     = c;
            o.Metallic   = _Metallic;
            o.Smoothness = _Glossiness;
        }
        ENDCG
        }
        FallBack "Diffuse"
}

Heres my second one

Shader "Custom/WaterShader"
{
    Properties{
        _Color("Color", Color) = (1,1,1,1)
        _MainTex("Albedo (RGB)", 2D) = "white" {}
        _Glossiness("Smoothness", Range(0,1)) = 0.5
        _Metallic("Metallic", Range(0,1)) = 0.0
    }
    SubShader{
        Tags {"Queue" = "Transparent" "RenderType"="Transparent" }
        LOD 200
        Blend SrcAlpha OneMinusSrcAlpha

        CGPROGRAM
        #pragma surface surf Standard  fullforwardshadows alpha:fade
        #pragma target 3.0

        sampler2D _MainTex;

        struct Input {
            float2 uv_MainTex;
            float4 color : Color;
        };

        half   _Glossiness;
        half   _Metallic;
        fixed4 _Color;
        half   _Alpha;

        void surf(Input IN, inout SurfaceOutputStandard o)
        {                       
            fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
            o.Albedo = c.rgb;
            o.Metallic = _Metallic;
            o.Smoothness = _Glossiness;
            o.Alpha = c.a;
        }
        ENDCG
        }
        FallBack "Standard"
}

Hi Beast32704,
As you probably figured out, URP doesn’t support Surface shaders.
I would suggest you familiarize yourself with Shader Graph.
For instance, here is the second one(Water) you posted, recreated with Shader Graph(note: surface is set to Transparent).
You can dive deeper into Shader Graph here: How Shader Graph can be applied to your 2D or 3D game | Unity


The first one you posted is just a simplified version that uses vertex colors for Albedo.
Hope this helps!

(For terrain shader) Just add vertex color in shader graph link it with base color. Thats it…
(114) MESH COLOR in Unity - Terrain Generation - YouTube