#ifndef UI_EFFECT_SPRITE_INCLUDED #define UI_EFFECT_SPRITE_INCLUDED fixed4 _Color; fixed4 _TextureSampleAdd; float4 _ClipRect; sampler2D _MainTex; float4 _MainTex_TexelSize; struct appdata_t { float4 vertex : POSITION; float4 color : COLOR; float2 texcoord : TEXCOORD0; #if EX && TMP_SPRITE float2 uvMask : TEXCOORD2; #elif EX float2 uvMask : TEXCOORD1; #endif UNITY_VERTEX_INPUT_INSTANCE_ID }; struct v2f { float4 vertex : SV_POSITION; fixed4 color : COLOR; half2 texcoord : TEXCOORD0; float4 worldPosition : TEXCOORD1; #if UI_DISSOLVE || UI_TRANSITION half3 eParam : TEXCOORD2; #elif UI_SHINY half2 eParam : TEXCOORD2; #else half eParam : TEXCOORD2; #endif #if EX half4 uvMask : TEXCOORD3; #endif UNITY_VERTEX_OUTPUT_STEREO }; v2f vert(appdata_t IN) { v2f OUT; UNITY_SETUP_INSTANCE_ID(IN); UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT); OUT.worldPosition = IN.vertex; OUT.vertex = UnityObjectToClipPos(OUT.worldPosition); #if UI_EFFECT OUT.texcoord = UnpackToVec2(IN.texcoord.x) * 2 - 0.5; #else OUT.texcoord = UnpackToVec2(IN.texcoord.x); #endif #ifdef UNITY_HALF_TEXEL_OFFSET OUT.vertex.xy += (_ScreenParams.zw-1.0)*float2(-1,1); #endif OUT.color = IN.color * _Color; #if UI_DISSOLVE || UI_TRANSITION OUT.eParam = UnpackToVec3(IN.texcoord.y); #elif UI_SHINY OUT.eParam = UnpackToVec2(IN.texcoord.y); #else OUT.eParam = IN.texcoord.y; #endif #if EX OUT.uvMask = half4(UnpackToVec2(IN.uvMask.x), UnpackToVec2(IN.uvMask.y)); #endif return OUT; } #endif // UI_EFFECT_SPRITE_INCLUDED