I have one model with one material but many textures (interchangeable for the material). To date I have been creating new materials one for each texture, then reimporting the same model over and over and attaching each material…
somehow this feels wrong and wasteful - better way?
No I don’t think you understood me. I am not trying to copy the model like that.
I have a model with 1 material. I then assign a texture to that material. That material now is linked to that texture. If I then make a copy of the model and change the texture on ITS material, the first models texture will also change as they are using the same material.
But I have many textures for 1 model (say a women and each texture changes her hair color or dress color), and I want prefabs of all of these.
Create one prefab.
Duplicate it.
Change the material on the new prefab.
You’ll end up with two prefabs of the same model with different materials.
Edit: Er, yeah, you do need to create a new material per texture. You can add a script that takes a texture as a parameter and creates cached material on the fly, but material definitions are just a means to bind shaders with textures and are very lightweight so it doesn’t save a lot of resources as much as it does ease your workflow.