How to add an alpha channel to Unity Toon shader?

Hi,

I was wondering how this might be done?

Thanks.

The code for the Toon shader is as follows (Basic Outline unlit version):

Shader "Toon/Basic Outline" {
 Properties {
 _Color ("Main Color", Color) = (.5,.5,.5,1)
 _OutlineColor ("Outline Color", Color) = (0,0,0,1)
 _Outline ("Outline width", Range (.002, 0.03)) = .005
 _MainTex ("Base (RGB)", 2D) = "white" { }
 _ToonShade ("ToonShader Cubemap(RGB)", CUBE) = "" { Texgen CubeNormal }
 }
 
 CGINCLUDE
 #include "UnityCG.cginc"
 
 struct appdata {
 float4 vertex : POSITION;
 float3 normal : NORMAL;
 };

 struct v2f {
 float4 pos : POSITION;
 float4 color : COLOR;
 };
 
 uniform float _Outline;
 uniform float4 _OutlineColor;
 
 v2f vert(appdata v) {
 v2f o;
 o.pos = mul(UNITY_MATRIX_MVP, v.vertex);

 float3 norm   = mul ((float3x3)UNITY_MATRIX_IT_MV, v.normal);
 float2 offset = TransformViewToProjection(norm.xy);

 o.pos.xy += offset * o.pos.z * _Outline;
 o.color = _OutlineColor;
 return o;
 }
 ENDCG

 SubShader {
 Tags { "RenderType"="Opaque" }
 UsePass "Toon/Basic/BASE"
 Pass {
 Name "OUTLINE"
 Tags { "LightMode" = "Always" }
 Cull Front
 ZWrite On
 ColorMask RGB
 Blend SrcAlpha OneMinusSrcAlpha

 CGPROGRAM
 #pragma vertex vert
 #pragma fragment frag
 half4 frag(v2f i) :COLOR { return i.color; }
 ENDCG
 }
 }
 
 SubShader {
 Tags { "RenderType"="Opaque" }
 UsePass "Toon/Basic/BASE"
 Pass {
 Name "OUTLINE"
 Tags { "LightMode" = "Always" }
 Cull Front
 ZWrite On
 ColorMask RGB
 Blend SrcAlpha OneMinusSrcAlpha

 CGPROGRAM
 #pragma vertex vert
 #pragma exclude_renderers shaderonly
 ENDCG
 SetTexture [_MainTex] { combine primary }
 }
 }
 
 Fallback "Toon/Basic"
}

this shader is opaque, by default it renders in opaque queue (from front to back, transparent objects should render from back to front), writes to z-buffer. it means that transparency on this shader my looks incorrect. also, objects behind this object will not be rendered at all cause z-buffer is filled by this object. if you understand all of this and this is exactly what you need, describe in which input data you want be able to add alpha data and how it must change the result rendered. i’ll help.

Here is a tutorial that has three basic shaderlab shaders. One with only, one with and one with

Check out the difference and you can play with your shaders settings to get the result you want.