调整Unity中游戏对象列表的大小

时间:2015-04-22 22:13:06

标签: list foreach unity3d gameobject

我一直致力于允许用户通过点击指定区域来创建目标的游戏。我试图实现它,以便在游戏将存储用户创建的所有目标的信息时,一次只能显示最多9个目标(一系列'页面'如果你会)。

问题是我遇到了问题'清理'该地区。 我试图通过将其比例更改为0/0/0

来清除目标
if(newPage)
            {
                print("Making New Page...");
                //"Clear" the screen of Targets
                foreach(GameObject obj in targets)
                {
                    obj.gameObject.transform.localScale = new Vector3(0.0f , 0.0f, 0.0f);
                    //print(obj);
                }

                newPage = false;
                totalPages++;
                currentPage++;
            }

一些有用的东西:

targets是列表的名称 newPage是一个布尔值,用于指示何时运行此代码
totalPages和currentPages用于稍后重新激活目标

这两个印刷语句都是功能性的,但没有一个目标实际上消失了。我不确定为什么它不起作用。

1 个答案:

答案 0 :(得分:1)

使用GameOjbect.SetActive()函数停用它可能更容易,而不是缩小对象:

if(newPage)
    {
        print("Making New Page...");
        //"Clear" the screen of Targets
        foreach(GameObject obj in targets)
        {
            obj.SetActive(false);
            //print(obj);
        }

        newPage = false;
        totalPages++;
        currentPage++;
    }

如果您希望对象在场景中处于活动状态,但只是不可见,则另一个选项是禁用MeshRenderer组件:

obj.GetComponent<MeshRenderer>().enabled = false;