Using a shader to fade out GameObjects when they come close.

Would you like to fade in or fade out objects in Unity based on their poximity to the camera? After reading this, you are able to create a Unity Shader that manipulates the alpha value of an objects material color based on a distance parameter.

cube

By moving the camera positions Z value, the cube appears to come closer and as you would expect, the alpha value remains the same. In other words, the cube remains opaque.

cube

Create a shader that changes the Alpha value (opacity)

cube

cube

Shader "AlphaShader"
{
SubShader
{
Pass
{
CGPROGRAM
#pragma vertex vert
      #pragma fragment frag

#include "UnityCG.cginc"

struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};

struct v2f
{
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};

v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = v.uv;
return o;
}

fixed4 frag (v2f i) : SV_Target
{
return fixed4(i.uv.r, 1, 1, 1);
}
ENDCG
}
}
}

cube

Written by Loek van den Ouweland on 2018-05-04. Questions regarding this artice? You can send them to the address below.