Shader "Custom/DissappearablePositiveX" { Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Albedo (RGB)", 2D) = "white" {} _Glossiness ("Smoothness", Range(0,1)) = 0.5 _Metallic ("Metallic", Range(0,1)) = 0.0 _DissolvePosition("Dissolve Position", Range(0, 1000)) = 0 } SubShader { Tags { "Queue" = "Transparent" "RenderType" = "Transparent" } LOD 200 CGPROGRAM #pragma surface surf Standard fullforwardshadows vertex:vert alpha #pragma target 3.0 sampler2D _MainTex; struct Input { float2 uv_MainTex : TEXCOORD0; float3 pos : SV_POSITION; }; half _Glossiness; half _Metallic; fixed4 _Color; float _DissolvePosition; UNITY_INSTANCING_BUFFER_START(Props) // put more per-instance properties here UNITY_INSTANCING_BUFFER_END(Props) void vert(inout appdata_full v, out Input o){ UNITY_INITIALIZE_OUTPUT(Input, o); o.pos = mul(unity_ObjectToWorld, v.vertex).xyz; } void surf (Input IN, inout SurfaceOutputStandard o) { fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color; o.Albedo = c.rgb; o.Metallic = _Metallic; o.Smoothness = _Glossiness; o.Alpha = 1; int a = IN.pos.x > _DissolvePosition ? 1.0 : 0.0; if(a == 1 ){ discard; } } ENDCG } FallBack "Diffuse" }