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



我一直在开发一款允许用户通过单击指定区域来创建目标的游戏。我正在尝试实现它,以便虽然游戏将存储用户创建的所有目标的信息,但一次最多只能显示 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++;
            }

一些有用的东西:

目标是列表
的名称newPage 是一个布尔值,用于指示何时运行此代码
总页数和当前页数用于以后重新激活目标

这两个 print 语句都正常工作,但实际上没有一个目标消失。我不太确定为什么它不起作用。

与其缩小对象,不如使用 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;

最新更新