我有一个public Image[]
可以从 Unity编辑器中获得场景中存在的许多Image UI
。
现在我想通过它的名字从场景中停用其中一个或多个。
但我无法通过字符串名Images
访问此数组项。仅我可以通过int编号访问Images[0]
等索引
我在论坛上尝试了Dictionary
课程和其他解决方案,但我找不到办法。
我该怎么做?
答案 0 :(得分:3)
对于数组:
使用for循环遍历图像阵列,然后比较名称。如果匹配,请将其停用。
public Image[] image;
void activateImage(string imageName, bool enable)
{
for (int i = 0; i < image.Length; i++)
{
if (image[i].name == imageName)
{
image[i].enabled = enable;//Good for performace
// OR
//image[i].gameObject.SetActive(enable);
}
}
}
<强>用法强>:
激活
activateImage("nextImage", true);
停用
activateImage("nextImage", false);
For Dictionary :
Dictionary<string, Image> image = new Dictionary<string, Image>();
void activateImage(string imageName, bool enable)
{
if (image.ContainsKey(imageName))
{
image[imageName].enabled = enable;//Good for performace
// OR
//image[imageName].gameObject.SetActive(enable);
}
}
将图像添加到词典:
public Image myImage;
image.Add(myImage.name, myImage);
或
image.Add("myImageName", myImage);