【发布时间】:2020-05-20 11:19:27
【问题描述】:
Screenshot of Unity hierarchy, Images stay on top of each other 我目前在 Unity 中禁用图像时遇到问题。我在同一个场景中有大约 26 个按钮,因此一个一个地使用 OnClick() 很乏味。单击一个按钮时,我试图禁用 25 个图像。例如,我单击按钮 A 显示图像 A。当我单击按钮 B 时,上一个图像并没有消失,而是停留在图像 B 下方。我尝试了 i.GetComponent<Image>().enabled = true; 和 i.gameObject.SetActive(false); 但失败了。
public GameObject[] exceptions;
public void DisableImg()
{
GameObject[] image = GameObject.FindGameObjectsWithTag("image");
foreach (GameObject i in image)
{
i.gameObject.SetActive(false);
// i.GetComponent<Image>().enabled = true;
}
foreach (GameObject g in exceptions)
{
g.gameObject.SetActive(true);
// g.GetComponent<Image>().enabled = true;
}
}
【问题讨论】:
-
我们需要知道您的图像和按钮对象的层次结构以帮助您......以及如何显示图像
-
如果你持有点击的对象,然后在第一个 foreach 中比较它并检查 if(clickedImage != Gameobject) 然后将其写入 if 范围 i.gameObject.SetActive(false);