Unity3d 无效下标';texcoord&x27;

Unity3d 无效下标';texcoord&x27;,unity3d,shader,Unity3d,Shader,我对Unity 3D非常陌生,只是想实现本教程: 在创建他描述的适配着色器时,我创建了一个新的未照明着色器,并输入他的两行代码Cull front和v.texcoord.x=1-v.texcoord.x 现在我有一个例外 “Unlight/insideOut”中的着色器错误:位于的下标“texcoord”无效 第43行(d3d11上) 你知道会出什么问题吗 整个着色器: Shader "Unlit/insideOut" { Properties { _MainTex ("Texture"

我对Unity 3D非常陌生,只是想实现本教程:

在创建他描述的适配着色器时,我创建了一个新的未照明着色器,并输入他的两行代码
Cull front
v.texcoord.x=1-v.texcoord.x

现在我有一个例外

“Unlight/insideOut”中的着色器错误:位于的下标“texcoord”无效 第43行(d3d11上)

你知道会出什么问题吗

整个着色器:

Shader "Unlit/insideOut"
{
Properties
{
    _MainTex ("Texture", 2D) = "white" {}
}
SubShader
{
    Tags { "RenderType"="Opaque" }
    Cull front
    LOD 100

    Pass
    {
        CGPROGRAM
        #pragma vertex vert
        #pragma fragment frag
        // make fog work
        #pragma multi_compile_fog

        #include "UnityCG.cginc"

        struct appdata
        {
            float4 vertex : POSITION;
            float2 uv : TEXCOORD0;
        };

        struct v2f
        {
            float2 uv : TEXCOORD0;
            UNITY_FOG_COORDS(1)
            float4 vertex : SV_POSITION;
        };

        sampler2D _MainTex;
        float4 _MainTex_ST;

        v2f vert (appdata v)
        {
            v2f o;
            o.vertex = UnityObjectToClipPos(v.vertex);
            v.texcoord.x = 1 - v.texcoord.x;
            o.uv = TRANSFORM_TEX(v.uv, _MainTex);
            UNITY_TRANSFER_FOG(o,o.vertex);
            return o;
        }

        fixed4 frag (v2f i) : SV_Target
        {
            // sample the texture
            fixed4 col = tex2D(_MainTex, i.uv);
            // apply fog
            UNITY_APPLY_FOG(i.fogCoord, col);
            return col;
        }
        ENDCG
    }
}
}

texcoord
不是
appdata
的成员。使用
v.uv

v.uv.x = 1 - v.uv.x;

或者将
uv
成员重命名为
texcoord
texcoord
不是
appdata
的成员。使用
v.uv

v.uv.x = 1 - v.uv.x;

或者将
uv
成员重命名为
texcoord

可以在struct-appdata中更改名称,也可以在struct-appdata中更改名称 float2uv:TEXCOORD0; 对于 浮动2 texcoord:TEXCOORD0;
(但无法更改unity内部使用的TEXCOORD0 cos)

可以在struct appdata中更改名称,也可以在struct appdata中更改名称 float2uv:TEXCOORD0; 对于 浮动2 texcoord:TEXCOORD0; (但无法更改unity内部使用的TEXCOORD0 cos)