首页 > 解决方案 > 如何通过单击按钮更改多个对象的纹理?

问题描述

将不胜感激的建议。

实施它的最佳方法是什么?我可以使用一堆公共纹理变量创建一个脚本,将所有图像拖到那里,然后硬编码哪个纹理进入哪个平面上的哪个按钮单击。但是有没有更好(但不太复杂)的解决方案?

标签: c#unity3d

解决方案


我猜你想要做的是, 当按下某个按钮时,它将运行一个脚本,将其中一个平面更改为某种材料

这里有一些示例代码给你一个例子。

public Material[] textures;
public GameObject[] planes;

public void ChangeTexturetosomefruit()
{
    planes[0].GetComponent<MeshRenderer>().material = textures[0];
}

public void ChangeTexturetosomeotherfruit()
{
    planes[1].GetComponent<MeshRenderer>().material = textures[1];
}

然后在编辑器中,您可以将相应索引中的材料拖入。

数组列表

注意:您应该记住将哪个纹理和哪个平面放在哪个索引上。这应该变得非常简单。

我从索引 0 开始的原因是因为那是第一个索引,我将第一个 游戏对象的 材质设置为纹理数组中的第一个 材质


推荐阅读