当前位置: 代码迷 >> 综合 >> Shader编写中遇到的BUG--Shader error in 'First': Parse error: syntax error, unexpected $undefined, expectin
  详细解决方案

Shader编写中遇到的BUG--Shader error in 'First': Parse error: syntax error, unexpected $undefined, expectin

热度:49   发布时间:2023-12-12 17:50:44.0

出现这个BUG:

Shader error in 'First': Parse error: syntax error, unexpected $undefined, expecting TVAL_ID or TVAL_VARREF at line 10
查找了一下,排除了着色器函数和顶点着色器函数的语义错误,也排除了结构里面的错误发现都不是,最后是在Properties找到了原因,属性的后面加上了;,删了和;之后就OK了,附上脚本:

Shader "Unlit/First"
{//增加属性Properties{//声明一个存储颜色的属性_Color("Color Tint", Color) = (1,1,1,1)//这里不能加;}SubShader{Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag//定义一个与属性的名称,类型都相匹配的变量fixed4 _Color;struct a2v{//存储了模型的顶点坐标数据到vertexfloat4 vertex : POSITION;//存储了模型的法线方向数据到normalfloat3 normal : NORMAL;//存储了模型的第一套纹理坐标数据到texcoordfloat4 texcoord : TEXCOORD0;};//v2f 的作用就是顶点着色器和屏幕着色器之间传递信息struct v2f {//存储了模型的定点坐标在裁剪空间中的位置信息到posfloat4 pos : SV_POSITION;//存储了模型的颜色信息到colorfixed3 color : COLOR0;};v2f vert(a2v v) {v2f o;o.pos = UnityObjectToClipPos(v.vertex);o.color = v.normal * 0.5 + fixed3(0.5, 0.5, 0.5);return o;}/*	float4 vert(a2v v) : SV_POSITION{return UnityObjectToClipPos(v.vertex);}*/fixed4 frag(v2f i) : SV_Target{fixed3 c = i.color;//使用_Color属性来控制输出的颜色c *= _Color.rgb;return fixed4(c,1.0);}ENDCG}}
}

 

  相关解决方案