我做了复制所有材料从游戏物体到另一个脚本。这是在编辑器中按下一个按钮运行的脚本。
TargetComponents[j].gameObject.transform.GetComponent<Renderer>().material=ComponentsToAdd[i].gameObject.transform.GetComponent<Renderer>().materials;
是单位5剧本,但会在统一4一样,它差别不大,如:
TargetComponents[j].gameObject.transform.render.materials=ComponentsToAdd[i].gameObject.transform.render.materials;
的作品,但我复制的材料是不一样的,但这样的例子。我想知道如何告诉他不要创建实例,但使用原来的物质资产。
有可能吗?
团结提供了两种方式来获得在渲染器的材料:
该sharedMaterial
属性将返回原来的材料资产。这就是你想要的东西,在这里。
该material
属性将在内部共享材料进行复制,将其分配给渲染器,并返回新副本。这通常是“安全”的事情,尤其是对于经验丰富的开发人员较少谁可能不明白的区别,但它几乎从来没有为编辑脚本正确的举措。
渲染器也暴露materials
和sharedMaterials
阵列,如果你有一个对象的多种材料。
您可能已经知道这一点,但要小心编辑共享的材料,因为它是引用该材料的所有渲染和资产之间共享。