@atn said:
It seems to be because I was using a sprite sheet instead of a regular sprite. The UV seems to cover the entire sprite sheet instead of the current frame.
Is that expected?
Yes that is to be expected, you'll have to scale(multiply) and translate(add) values to get what you want from the shader.
To get the scale right you would multiply UV x and UV y coordinates by a 1/number-of-frames per coordinate axis. For the translation you would add positive or negative values to UV x and y coordinates to get the location of the correct frame.