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