Weird Shader Syntax error

I dont know why i am getting errors since im pretty sure this is the correct syntax, please comment if you can give any help
Here is the error:

Shader "DiffuseSimple"{
	Properties{
		_ColorTint("ColorTint", Color) = (1,1,1,1)
	}
	SubShader{
		Tags{"RenderType" = "Opaque"}
		CGPROGRAM
			#progma surface surf Lambert
			float4 _ColorTint;
			struct Input{
				float4 color : COLOR;
			}
			void surf(Input IN, inout SurfaceOutput i){
				IN.color=_ColorTint;
				i.Albedo=IN.color;
			}
		ENDCG
	}
}

line 8 “progma”? maybe “pragma” :smile:

However what are u trying to do here? why do u need the IN.color variable while u could directly pass the _ColorTint to the Albedo output?

When i change it i get this:
http://gyazo.com/8785005377efb3e1e91e0880f6b0fd00.png

This is how i currentlyy have it:

Shader "DiffuseSimple"{
	Properties{
		_ColorTint("ColorTint", Color) = (1,1,1,1)
	}
	SubShader{
		Tags{"RenderType" = "Opaque"}
                Pass {
		CGPROGRAM
			#pragma surface surf Lambert
			float4 _ColorTint;
			struct Input{
				float4 color : COLOR;
			}
			void surf(Input IN, inout SurfaceOutput i){
				IN.color=_ColorTint;
				i.Albedo=IN.color;
			}
		ENDCG
                }
	}
}

Remove “Pass {” at line 7 and “}” at line 19

this should work

yea this works:

Shader "DiffuseSimple"{
	Properties{
		_ColorTint("ColorTint", Color) = (1,1,1,1)
	}
	SubShader{
		Tags{"RenderType" = "Opaque"}
		CGPROGRAM
			#pragma surface surf Lambert
			float4 _ColorTint;
			struct Input{
				float4 color : COLOR;
			};
			void surf(Input IN, inout SurfaceOutput i) {
				IN.color=_ColorTint;
				i.Albedo= IN.color;
			}
		ENDCG
	}
}

thanks

You needed a semicolon after the struct Input closing bracket.