I switched to Unity5 and after some issues with some animation controllers, i found a problem with a shader: Code (csharp): Shader "Custom/CameraNoise" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} _alpha ("Transparency", Range(-2, 1)) =0.2 } SubShader { Tags { "RenderType"="AlphaTest " } LOD 200 CGPROGRAM #pragma surface surf Lambert alpha sampler2D _MainTex; struct Input { float2 uv_MainTex; }; half _alpha; void surf (Input IN, inout SurfaceOutput o) { half4 c = tex2D (_MainTex, IN.uv_MainTex); o.Albedo = c.rgb; o.Alpha = _alpha; o.Emission = 0.1; } ENDCG } FallBack "Diffuse" } It has an alpha value and a MainTexture, both setted by code with an array of Texture2D and a float. The problem is that back in Unity4 it had no problems, but now the Alpha value doesn't change anything.
alpha in Unity5 is premultiplied. Mean that the engine expect the albedo (rgb) to be already mutiplied by the alpha in the texture. If you want Unity 4 behaviour, change alpha by alpha:fade Code (CSharp): #pragma surface surf Lambert alpha by Code (CSharp): #pragma surface surf Lambert alpha:fade