Hi, we had try to make a shader to apply a height fading to an animated sprite. The trouble is that the sprites are inside the atlas and we cannot use uv directly so we convert the UV inside pixel shader to 0,1 with a rect set from a behaviour. Inside behaviour: Code (CSharp): public void SetUV() { Rect rect = spriteRenderer.sprite.textureRect; rect.x /= spriteRenderer.sprite.texture.width; rect.width /= spriteRenderer.sprite.texture.width; rect.y /= spriteRenderer.sprite.texture.height; rect.height /= spriteRenderer.sprite.texture.height; if(render) { render.sharedMaterial.SetFloat("_min_x_uv", rect.xMin); render.sharedMaterial.SetFloat("_max_x_UV", rect.xMax); render.sharedMaterial.SetFloat("_min_y_UV", rect.yMin); render.sharedMaterial.SetFloat("_max_y_UV", rect.yMax); } } // Update is called once per frame void Update() { this.SetUV(); } inside shader (frag): Code (JavaScript): float4 frag (v2f i) : SV_Target { float2 uvRect = i.uv0; float u = (i.uv0.x - _min_x_UV) / (_max_x_UV - _min_x_UV); float v = (i.uv0.y - _min_y_UV) / (_max_y_UV - _min_y_UV); uvRect = half2(u, v); float t = uvRect.y; fixed4 c = tex2D(_MainTex, i.uv0) * i.col; return fixed4(_Color.rgb, c.a * t); } the result is wrong, because the fading from 0 to 1.0 change by current frame. attached the result. any idea to fix this trouble? Thanks for support! Stefano