我的屏幕上有15个按钮。 在onClick事件中,我正在获取按钮并使用
隐藏该按钮EventSystem.current.currentSelectedGameObject.SetActive(false);
最后我必须再次显示按钮,所以我正在使用
for (int i = 0; i < 15; i++)
{
tag1 = "Button" + (i + 1);
GameObject.FindGameObjectWithTag(tag1).SetActive(true);
Debug.Log("done");
}
循环给出错误,因为它无法找到已隐藏的对象或setActive(false) 来自其他参考文献(unity forum)我看到了相同的解决方案,但我不知道为什么它在我的情况下不起作用。
答案 0 :(得分:0)
由于您希望按标签查找对象,因此无法使用方法FindGameObjectWithTag
找到隐藏的元素。您可以使用此方法:
var allObjects = GameObject.FindObjectsOfType(typeof(GameObject)) as GameObject[]; // this will grab all GameObjects from the current scene!
foreach(GameObejct obj in allObjects) {
if(new Regex(@"^Button(?'number'\d{1,2})").IsMatch(obj.Tag)) {
obj.SetActive(true);
Debug.Log("done");
}
}