使用c#

时间:2016-11-24 12:40:05

标签: c# unity5

我的屏幕上有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)我看到了相同的解决方案,但我不知道为什么它在我的情况下不起作用。

1 个答案:

答案 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");
    }
}