Unity - UI 图像无法更改材料颜色,更改所有实例

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

标题说明了一切,我在网上查找了多种解决方案。 我正在为我的 UI 多次实例化一个预制件,我正在尝试设置这个预制件图像组件的子级材料颜色(多么一连串的词),它导致它们都与最后一个实例化的颜色相同(我相信整个材料颜色都在改变)。

我本来试过

hair.material.SetColor("_HairColour", hairColour);
并期待单独实例化的预制件改变颜色,而不是每个使用这种材料的预制件。

我使用 SpriteRenderer 对我的实际游戏对象使用几乎完全相同的代码。它似乎与 Image 组件有关..

我试过像这样从材质和着色器中强行制作材质的克隆,它确实制作了(克隆),但在两种情况下它的行为仍然相同......

GetComponent<Image>().material = Instantiate(GetComponent<Image>().material);

Material instance = new Material(shader); instance.CopyPropertiesFromMaterial(material); GetComponent<Image>().material = Instantiate(instance);

我什至在脚本中为对象添加了(临时)公共颜色,并将其分配给与应该在材质中设置的颜色相同的颜色,并且每个对象都有自己不同的颜色,只是材质始终是最后一种颜色...

我在这里不知所措,所以任何帮助将不胜感激!

image unity3d user-interface prefab materials
© www.soinside.com 2019 - 2024. All rights reserved.