I know this has been asked a lot here. However, I can’t seem to get the hang of it. I instantiate new GameObjects through my code like this
Tile3D clone = null;
Tile3D master = //some method to get a prefab;
if(master != null)
clone = (Tile3D) UnityEngine.Object.Instantiate(master);
clone.renderer.sharedMaterial = master.renderer.sharedMaterial;
Tile3D is a script of mine which contains a few properties important for my game, but does nothing with the renderer or materials. The clones are then added each as a child of a different GameObject. Now when I instantiate a new object, it always creates a new instance of the material. At least that’s what I assume, since the Inspector shows the material name for the new object with an “(Instance)” appended. I also tried it without explicitly assigning the materials, and with a few combinations of material and sharedMaterial on either side. However, nothing I do there seems to have any effect. What do I have to do to use a truly shared material for all my GameObjects?