/// Credit 00christian00 /// Sourced from - http://forum.unity3d.com/threads/any-way-to-show-part-of-an-image-without-using-mask.360085/#post-2332030 Shader "UI Extensions/UI Image Crop" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} _XCrop ("X Crop", Range(0.0,1.0)) = 1 _YCrop ("Y Crop", Range(0.0,1.0)) = 1 } SubShader { ZWrite Off Tags { "Queue" = "Transparent" "RenderType" = "Transparent" "IgnoreProjector" = "True" } Blend SrcAlpha OneMinusSrcAlpha Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct v2f { float4 pos : POSITION; fixed4 color : COLOR; float2 uv : TEXCOORD0; //UV1 coord }; uniform sampler2D _MainTex; float4 _MainTex_ST; uniform float _XCrop; uniform float _YCrop; v2f vert (v2f v) { v2f o; o.color=v.color; o.color.a=0.1; o.pos = mul (UNITY_MATRIX_MVP, v.pos); o.uv=TRANSFORM_TEX(v.uv, _MainTex); return o; } fixed4 frag (v2f i) : COLOR { //return fixed4(0.25,0,0,1); i.color.a=step(i.uv.x,_XCrop); //I don't like the bottom up ordering,so I reverse it i.color.a=i.color.a*step(1-i.uv.y,_YCrop); return i.color * tex2D (_MainTex, i.uv); } ENDCG } } }