I have a Replacement Shader i use on an extra camera for an edge detection effect in my game. I also have a script that sets a property in the MaterialPropertyBlock of the object's renderer for this Replacement Shader to use. This works with every renderer, including sprite renderer, but only if the sprite is single and not multiple. If the sprite is part of a multiple sprite, just setting the property block, even with no changes, messes up the texture, sometimes grabbing part of a different texture entirely. My code is something like this: Code (CSharp): renderer.GetPropertyBlock(block, 0); block.SetFloat(propertyName, value); //Removing this line doesn't fix the problem renderer.SetPropertyBlock(block, 0); ¿Is this normal behaviour or is it a bug? I know SpriteRenderer uses MaterialPropertyBlocks to set up texture, tiling and color internally, and this issue seems to be related to that. I probably would be able to fix it if i knew the exact internal code SpriteRenderer uses for this.