68 lines
1.4 KiB
Plaintext
68 lines
1.4 KiB
Plaintext
/// 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
|
|
}
|
|
}
|
|
}
|