【问题标题】:Unity 3d - Change texture by clickingUnity 3d - 通过单击更改纹理
【发布时间】:2017-04-21 22:22:48
【问题描述】:

我是 Unity 的新手,我可以用一只手。我想做的是:

在我的“渲染”上,我将拥有:

例如,一个 3d 金字塔,每个面都拥有不同的材质/id。 我有 6 个纹理,6 个按钮。

我想做的是, 通过单击这 6 个按钮之一选择一个纹理,然后将实际的金字塔纹理交换/绘制到按钮纹理。我想做,我想做多少次。就像一本供孩子们画画的彩色书。但他们会先选择颜色,然后再选择颜色。

如果我不够清楚,请询问。 感谢您的支持!

【问题讨论】:

  • 您是否可以分享一些提供minimal, complete verifable example 的代码?
  • 不,没有。我只能通过单击按钮进行纹理交换。但这不是我想要的。 @spacepickle
  • 我想我明白了 - 你是在问如何构建界面让用户选择金字塔的一个面?
  • 是的。想象:我有 A B C D E F - 纹理;我有 1 2 3 - 物体的表面(每个表面都是一种材料);我想按一个字母(纹理),例如 C,我想把它放在数字 3 上,即物体的表面。如果我也想要它,我想把它放在数字 2 上。然后我不希望那种纹理在那里。所以我按下纹理 B 并把它放在数字 2 上......再次。
  • 忘记了你的身份@spacepickle

标签: unity3d click textures paint swap


【解决方案1】:

首先,您必须将材质存储在一个数组中 -

public Material[] materials

然后,在单击任何按钮时存储其索引以访问材料数组中的材料。例如,buttonIndex = 2

现在您可以使用 Pyramid Face 的 MeshRenderer 组件,在该组件上需要应用选定的材质 -

GameObject pyramidFace1;
...
pyramidFace1.GetComponent<MeshRenderer>().material = materials[buttonIndex];
...

【讨论】:

  • 首先,感谢您的帮助。但另一个问题来了。我仍然不知道“点击”部分是如何工作的。正如我所说,我是新的团结。 @Mukesh Saini
猜你喜欢
  • 2020-09-27
  • 2014-12-31
  • 1970-01-01
  • 1970-01-01
  • 2021-04-29
  • 1970-01-01
  • 2016-02-05
  • 2022-01-09
  • 1970-01-01
相关资源
最近更新 更多