- Home /
 
 
               Question by 
               boazlaurens · Jan 25, 2015 at 11:47 AM · 
                shadertexture  
              
 
              Texture offset not working because of shader
I'm trying to use renderer.material.mainTextureOffset to choose a color for a mesh on it's palette texture. This works when I use the diffuse shader, but not with this custom shader I got online.
Is there something I can add to this shader to make it work?
 Shader "Custom/UnlitShadowReceive" {
     Properties {
         _Color ("Main Color", Color) = (1,1,1,1)
         _MainTex ("Base (RGB)", 2D) = "white" {}
     }
     SubShader {
         Tags {"Queue" = "Geometry" "RenderType" = "Opaque"}
 
         Pass {
             Tags {"LightMode" = "ForwardBase"}
             CGPROGRAM
                 #pragma vertex vert
                 #pragma fragment frag
                 #pragma multi_compile_fwdbase
                 #pragma fragmentoption ARB_fog_exp2
                 #pragma fragmentoption ARB_precision_hint_fastest
                 
                 #include "UnityCG.cginc"
                 #include "AutoLight.cginc"
                 
                 struct v2f
                 {
                     float4    pos            : SV_POSITION;
                     float2    uv            : TEXCOORD0;
                     LIGHTING_COORDS(1,2)
                 };
 
                 v2f vert (appdata_tan v)
                 {
                     v2f o;
                     
                     o.pos = mul( UNITY_MATRIX_MVP, v.vertex);
                     o.uv = v.texcoord.xy;
                     TRANSFER_VERTEX_TO_FRAGMENT(o);
                     return o;
                 }
 
                 sampler2D _MainTex;
 
                 fixed4 frag(v2f i) : COLOR
                 {
                     fixed atten = LIGHT_ATTENUATION(i);    // Light attenuation + shadows.
                     //fixed atten = SHADOW_ATTENUATION(i); // Shadows ONLY.
                     return tex2D(_MainTex, i.uv) * atten;
                 }
             ENDCG
         }
 
         Pass {
             Tags {"LightMode" = "ForwardAdd"}
             Blend One One
             CGPROGRAM
                 #pragma vertex vert
                 #pragma fragment frag
                 #pragma multi_compile_fwdadd_fullshadows
                 #pragma fragmentoption ARB_fog_exp2
                 #pragma fragmentoption ARB_precision_hint_fastest
                 
                 #include "UnityCG.cginc"
                 #include "AutoLight.cginc"
                 
                 struct v2f
                 {
                     float4    pos            : SV_POSITION;
                     float2    uv            : TEXCOORD0;
                     LIGHTING_COORDS(1,2)
                 };
 
                 v2f vert (appdata_tan v)
                 {
                     v2f o;
                     
                     o.pos = mul( UNITY_MATRIX_MVP, v.vertex);
                     o.uv = v.texcoord.xy;
                     TRANSFER_VERTEX_TO_FRAGMENT(o);
                     return o;
                 }
 
                 sampler2D _MainTex;
 
                 fixed4 frag(v2f i) : COLOR
                 {
                     fixed atten = LIGHT_ATTENUATION(i);    // Light attenuation + shadows.
                     //fixed atten = SHADOW_ATTENUATION(i); // Shadows ONLY.
                     return tex2D(_MainTex, i.uv) * atten;
                 }
             ENDCG
         }
     }
     FallBack "VertexLit"
 }
 
              
               Comment
              
 
               
               
               Best Answer 
              
 
              Answer by Paulius-Liekis · Jan 25, 2015 at 10:54 PM
Add call to TRANSFORM_TEX macro and variable float4 _MainTex_ST;
          float4 _MainTex_ST;
          v2f vert (appdata_tan v)
          {
              v2f o;
              
              o.pos = mul( UNITY_MATRIX_MVP, v.vertex);
              o.uv = TRANSFORM_TEX (v.texcoord.xy, _MainTex);
              TRANSFER_VERTEX_TO_FRAGMENT(o);
              return o;
          }
 
              Your answer
 
             Follow this Question
Related Questions
Two Textures Dissolve Shader (clip & lerp) 1 Answer
Shader Texture Change 3 Answers
glTexSubImage3D in unity 0 Answers
how to solve shader/texture problem: putting white icons on colored planes 1 Answer
Combine Shaders 0 Answers