To change anything about a material runtime it must have that value set as a parameter in the material and you must create and assign a DynamicMaterialInstance
of your material to each and every object using it.
Now I have no idea weather a bunch of objects can share the same Dynamic Material Instance. If they can, you can change the parameter in one place. If they can’t though and each object has it’s own instance then you are really out of luck.
If you are talking specifically for the texture, you can use a virtual texture and draw whatever you want on it.
There must be a way to replace the whole material shader runtime as I imagine it would be useful for the visual setting, but I don’t really know if and how.