I used the code here How to make plane look curved? - Unity Answers
to make a curving vertex shader, which is being applied to a row of planes, making a runner type game like subway surfers, and the effect is really good, however, his example is unlit. I have been messing around for hours and have got the shader to finally compile, containing the parts for both the vertex shader and the default diffuse shader, without errors, however, it now just renders as a default shader with no vertex shading being applied… It seems I can only get one or the other… the code is here:
Shader "Custom/CurvedLit"
{
Properties
{
_MainTex ("Base (RGB)", 2D) = "white" {}
_QOffset ("Offset", Vector) = (0,0,0,0)
_Dist ("Distance", Float) = 100.0
_Color ("Main Color", Color) = (1,1,1,1)
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 200
CGPROGRAM
#pragma surface surf Lambert vertex:vert
#include "UnityCG.cginc"
sampler2D _MainTex;
fixed4 _Color;
float4 _QOffset;
float _Dist;
struct Input
{
float2 uv_MainTex;
};
struct v2f
{
float4 pos : SV_POSITION;
float4 uv : TEXCOORD0;
};
v2f vert (inout appdata_full v)
{
v2f o;
float4 vPos = mul (UNITY_MATRIX_MV, v.vertex);
float zOff = vPos.z/_Dist;
vPos += _QOffset*zOff*zOff;
o.pos = mul (UNITY_MATRIX_P, vPos);
o.uv = v.texcoord;
return o;
}
void surf (Input IN, inout SurfaceOutput o)
{
fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
o.Albedo = c.rgb;
o.Alpha = c.a;
}
ENDCG
}
Fallback "VertexLit"
}
Please help as soon as possible, I just want a curved plane that accepts shadows. The shader can then be applied to all objects, but it needs to work on just planes first! Thanks in advance!