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.
The easiest solution ive got is to change the loaded asset memory adress’ value directly. I need some kind of a superfunction, that can be used with everything. No any dependensies in it.|
The best answer I would have for that is look into how Lyra does it. Although those assets swapping wouldn’t be runtime to my knowledge. Sorry I can’t be of more help.