MaterialPropertyBlock Main Texture Offset?

I’ve gotten into the habit of using MaterialPropertyBlocks to tweak shader properties at runtime, as to avoid creating new material instances for simple things.

The question I have, though, is how can I do this to tweak the material’s main texture offset, so I can use a spritesheet of icons and not end up with a bunch of instanced materials (as that would cause the icons not to batch).

I’ve found that you can modify texture transforms (offset and tiling) by setting _STs (uniform float4 _MainTexture_ST for example) like any other Vector4:

propertyBlock.SetVector("_MainTex_ST", new Vector4(0.5f, 0.5f, 0.25f, 0.25f));