I am trying to get some characters rendering correctly when it was covering Code (csharp): Shader "RimLight" { Properties { _MainTex ("Base (RGB)", 2D) = "" {} _Color ("Color",color) = (1,1,1,1) _Value("Light",range(0.01,5)) = 0.2 } SubShader { Tags { "Queue" = "Transparent" }//"RenderType"="Opaque" } Pass { blend one oneminussrccolor ZTest Greater Lighting Off ZWrite off CGPROGRAM // Upgrade NOTE: excluded shader from DX11 and Xbox360; has structs without semantics (struct v2f members normal,dir) #pragma exclude_renderers d3d11 xbox360 #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" sampler2D _MainTex; half4 _Color; float _Value; struct input { float4 pos:POSITION; float3 normal : NORMAL; }; struct v2f { float4 pos:POSITION; float3 normal; float3 dir; }; v2f vert(input i) { v2f v; v.pos = mul(UNITY_MATRIX_MVP,i.pos); v.dir = mul(UNITY_MATRIX_MV,i.pos).xyz; v.normal = i.normal; return v; } half4 frag(v2f v):Color { half4 o ; half rim = 1.0 - saturate(dot (normalize(v.dir), v.normal)); o = half4 (_Color.rgb * pow (rim, _Value),1); return o; } ENDCG } Pass { Lighting off ZTest LEqual Material { Diffuse (1,1,1,1) Ambient (1,1,1,1) } SetTexture [_MainTex] { combine texture } } } fallBack "Diffuse" } It works well on the PC. But it not work on android. I do not know where is the problem. Any help and suggestion is greatly appreciated. thanks folks.