影响所有预制件的材料?
问题描述:
我正在开发2D平台游戏。我有一个精灵和一个着色器,我发现here。影响所有预制件的材料?
着色器具有影响精灵溶解效果的值属性,但如果我在场景中多次使用相同的GameObject(作为预制或通过代码实例化),更改一个材质上的溶解值会影响所有使用相同材质的GameObjects(我试着更改材质名称,克隆材质和所有类型的东西),我想我现在已经低调了,因为我使用了相同的精灵(图片)
我该怎么做避免这种行为?
float dissolvePower = dissoleMaterial.GetFloat(dissolveProperty);
float minus = -0.1f;
while (dissolvePower > 0)
{
//print(dissolvePower);
dissolvePower += minus;
dissoleMaterial.SetFloat(dissolveProperty, dissolvePower);
yield return new WaitForSeconds(0.07f);
}
print("Exit DeathDissolve()");
Destroy(gameObject);
答
您使用的是相同的材料为每个GameObjects的。
因此,如果您更改材质的属性(如溶解值),无论您是在检查器中为GameObject还是材质本身执行此操作,都将更改使用该材质的每个GameObject的值。
为了避免这种情况,您需要使用其他材料。您可以复制材质,将其称为不同的材质,然后将这些材质应用到您想与众不同的GameObject上。
发布您用于更改材料或颜色的代码 – Programmer
您应该使用代码编辑您的答案,因为它在评论中不可读。 – Maakep