2017-01-29 16 views
0

Используя единство 5.5 и книгу Алана Zucconi в я получаю «неверное число аргументов числовые типа конструктора» добавленОшибка на прокрутки текстуры затенения на основе книги Алана Zucconi в

источника шейдера, как рекомендовано:

Shader "book/scroller" 
    { 
    Properties 
    { 
    _MainTex ("Texture", 2D) = "white" {} 
    _ScrollXSpeed ("x scroll speed", Range(0,10)) = 2 
    _ScrollYSpeed("Y scroll speed", Range(0,10)) = 2 
} 
SubShader 
{ 
    Tags { "RenderType"="Opaque" } 
    LOD 100 

    Pass 
    { 
     CGPROGRAM 
     #pragma vertex vert 
     #pragma fragment frag 


     #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; 
     fixed _ScrollXSpeed; 
     fixed _ScrollYSpeed; 

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

     fixed4 frag (v2f i) : SV_Target 
     { 

      fixed2 scrolledUV = i.uv; 
      fixed2 xScrolledValue = _ScrollXSpeed * _Time; 
      fixed2 yScrolledValue = _ScrollYSpeed * _Time; 
      scrolledUV += fixed2 (xScrolledValue, yScrolledValue); 
      fixed4 col = tex2D(_MainTex, scrolledUV); 
      return col; 
     } 
     ENDCG 
    } 
} 

}

Ошибка показывает в следующей строке:

scrolledUV += fixed2 (xSCrolledValue, ySCrolledValue); 

Что в этом плохого?

+0

Пожалуйста, пост код и контекст. Не похоже, что все пойдут и купят ту же книгу, чтобы узнать, о чем вы говорите. Очевидно, вы пытаетесь вызвать метод с неправильным количеством параметров. Проверьте свой метод, затем –

+0

@ Łukasz Motyczka добавил (а) источник, спасибо за рекомендацию – fran35

+1

возможно xScrolledValue и yScrolledValue следует фиксировать/плавать, а не fixed2 – mgear

ответ

0

Причина ошибки: Вы создаете фиксированную2-переменную и даете ей два фиксированных значения в качестве параметров, вместо этого должны быть поплавки.

Вот версия фиксированной:

fixed xScrolledValue = _ScrollXSpeed * _Time; 
fixed yScrolledValue = _ScrollYSpeed * _Time; 
scrolledUV += fixed2 (xScrolledValue, yScrolledValue);