我不想实例材料,但原物料资产

问题描述 投票:1回答:1

我做了复制所有材料从游戏物体到另一个脚本。这是在编辑器中按下一个按钮运行的脚本。

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;

的作品,但我复制的材料是不一样的,但这样的例子。我想知道如何告诉他不要创建实例,但使用原来的物质资产。

有可能吗?

unity3d instance
1个回答
1
投票

团结提供了两种方式来获得在渲染器的材料:

sharedMaterial属性将返回原来的材料资产。这就是你想要的东西,在这里。

material属性将在内部共享材料进行复制,将其分配给渲染器,并返回新副本。这通常是“安全”的事情,尤其是对于经验丰富的开发人员较少谁可能不明白的区别,但它几乎从来没有为编辑脚本正确的举措。

渲染器也暴露materialssharedMaterials阵列,如果你有一个对象的多种材料。

您可能已经知道这一点,但要小心编辑共享的材料,因为它是引用该材料的所有渲染和资产之间共享。

© www.soinside.com 2019 - 2024. All rights reserved.