Unity 5, uv not working in standard shader

So in my shader I got the following:

struct Input
    float2 uv_MainTex;

void surf (inInput IN, inout SurfaceOutputStandard o) {
o.Albedo = IN.uv_MainTex.xyy;

However the result is a pure black surface. Now I’m sure that the actual uv coordinates are correct, as when applying another shader that was made in unity 4 the uv is working.

Did unity 5 introduce a new uv system for the standard shader or what could the issue be?

Are you using standard material ?
you can check UV set in secondry Map some time uv is assign on UV 1 thats why this problems come correct uv set is UV 0 for texture .

if this is good then check your material color into white because when you are importing some assets in unity then texture is unlink and its material slots come black siply you can change it to white problem solve.

3rd option is with your uv normal map problems- when you are importing your model into fbx or obj somtime its normal if flip that why your model look black in unity so you can correct normal and get the solution.

just check all the option you are definitely get the solution .

When this happened to me, I found that the issue was that my uv coordinate was not named after a texture parameter on the shader. For example, if you have a single texture parameter named _Tiles, then your texture coordinate has to be named uv_Tiles for some reason, otherwise things do not get mapped properly and the uv’s come as (0,0).

I think this is a bug and it has been reported as such, for 2 reasons:

  1. Either we should be able to name the texture coordinate whatever we want, or the restrictions should be clearly documented.
  2. What about shaders that don’t use textures, but still use texture coordinates procedurally? The current state of things forces those shaders to declare a dummy, unused texture parameter.

Could it be because you are using IN.uv_MainTex.xyy ? instead of In.uv_MainTex.xy?