Hi, I’ve write a simple shader with lightmap which works fine in editor, but when published to Android devices, no lightmap effect shows at all, Here is the shade code:
// Upgrade NOTE: commented out 'float4 unity_LightmapST', a built-in variable
// Upgrade NOTE: commented out 'sampler2D unity_Lightmap', a built-in variable
// Upgrade NOTE: replaced tex2D unity_Lightmap with UNITY_SAMPLE_TEX2D
// 普通自发光材质
Shader "Custom/x1945/normal/unlit" {
Properties {
_MainTex ("Base (RGB)", 2D) = "white" {}
}
SubShader
{
Tags { "RenderType"="Opaque" }
Lighting Off
Fog { Mode Linear}
Pass
{
CGPROGRAM
#include "UnityCG.cginc"
#pragma vertex vert
#pragma fragment frag
#pragma multi_compile_fog
#pragma multi_compile LIGHTMAP_ON LIGHTMAP_OFF
uniform sampler2D _MainTex;
uniform float4 _MainTex_ST;
// sampler2D unity_Lightmap;
// float4 unity_LightmapST;
struct v2f
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
#ifdef LIGHTMAP_ON
float2 uv1 : TEXCOORD1;
#endif
UNITY_FOG_COORDS (2)
};
struct appdata_input
{
float4 vertex : POSITION;
float2 texcoord : TEXCOORD0;
#ifdef LIGHTMAP_ON
float2 texcoord1 : TEXCOORD1;
#endif
};
v2f vert (appdata_input input)
{
v2f o;
o.vertex = mul (UNITY_MATRIX_MVP, input.vertex);
o.uv = TRANSFORM_TEX (input.texcoord, _MainTex);
#ifndef LIGHTMAP_OFF
o.uv1 = input.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw;
#endif
UNITY_TRANSFER_FOG(o,o.vertex);
return o;
}
fixed4 frag (v2f i) : COLOR
{
fixed4 texColor = tex2D (_MainTex, i.uv);
#ifndef LIGHTMAP_OFF
texColor.rgb *= DecodeLightmap (UNITY_SAMPLE_TEX2D (unity_Lightmap, i.uv1));
#endif
UNITY_APPLY_FOG (i.fogCoord, texColor);
return texColor;
}
ENDCG
}
}
FallBack Off
}
Is there anything wrong with the shader? My unity version is 5.0.0f4.