Let me just start off by saying that my experience with this subject is very little indeed. I wrote with the help of online tutorials a custom shader to make certain colored pixels transparent. But an unintended side effect was that my sprites turn much darker:
Is this a gamma issue or perhaps something to do with shadows I wonder?
*Edit - code now included
Shader "Custom/transparent-color" {
Properties {
_Color ("Color", Color) = (1,1,1,1)
_TransparentColor ("Transparent Color", Color) = (1,1,1,1)
_Threshold ("Threshhold", Float) = 0.1
_MainTex ("Albedo (RGB)", 2D) = "white" {}
}
SubShader {
Tags { "Queue"="Transparent" "RenderType"="Transparent" }
LOD 200
CGPROGRAM
#pragma surface surf Lambert alpha
sampler2D _MainTex;
struct Input {
float2 uv_MainTex;
};
fixed4 _Color;
fixed4 _TransparentColor;
half _Threshold;
void surf (Input IN, inout SurfaceOutput o) {
half4 c = tex2D (_MainTex, IN.uv_MainTex);
half4 output_col = c * _Color;
half3 transparent_diff = c.xyz - _TransparentColor.xyz;
half transparent_diff_squared = dot(transparent_diff,transparent_diff);
if(transparent_diff_squared < _Threshold)
discard;
o.Albedo = output_col.rgb;
o.Alpha = output_col.a;
}
ENDCG
}
FallBack "Diffuse"
}