Unity3d 输出语义无效';SV#U位置';:法定指数为[0,0]

Unity3d 输出语义无效';SV#U位置';:法定指数为[0,0],unity3d,shader,Unity3d,Shader,我刚开始学习Unity3d Shader,我遵循了一本书的教程,我所有的代码都与教程相同,但是,有一个错误我无法理解 代码如下: Shader "Unity Shaders Book/Chapter5/Simple Shader"{ SubShader{ Pass{ CGPROGRAM #pragma vertex vert #pragma fragment frag struct a2v {

我刚开始学习Unity3d Shader,我遵循了一本书的教程,我所有的代码都与教程相同,但是,有一个错误我无法理解

代码如下:

    Shader "Unity Shaders Book/Chapter5/Simple Shader"{
        SubShader{
            Pass{
            CGPROGRAM

    #pragma vertex vert
    #pragma fragment frag

    struct a2v {
    float4 vertex:POSITION;
    float3 normal:NORMAL;
    float4 texcoord:TEXCOORD0;
    };

    struct v2f {
        float4 pos: SV_POSITION;
        fixed3 color : COLOR0;

    };

    v2f vert(a2v v) : SV_POSITION {
        v2f o;
        o.pos = UnityObjectToClipPos(v.vertex);
        o.color = v.normal *0.5 + fixed3(0.5, 0.5, 0.5);
        return o;
    }
    fixed4 frag(v2f i) : SV_Target{
    return fixed4(i.color,1.0);
    }
    ENDCG
    }
}
}

更改此行:

v2f vert(a2v v) : SV_POSITION {
为此:

v2f vert(a2v v) {