在 Unity 中调整游戏对象列表的大小
Resizing a List of GameObjects in Unity
我一直在开发一款允许用户通过单击指定区域来创建目标的游戏。我正在尝试实现它,这样虽然游戏会存储用户创建的所有目标的信息,但一次最多只能显示 9 个目标(如果你愿意,可以显示一系列 'pages')。
问题是我在 'clearing' 这个地区遇到了问题。
我正在尝试通过将比例更改为 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 用于稍后重新激活目标
两个打印语句都起作用,但 none 的目标实际上消失了。我不太确定为什么它不起作用。
与其缩小对象,不如使用 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;
我一直在开发一款允许用户通过单击指定区域来创建目标的游戏。我正在尝试实现它,这样虽然游戏会存储用户创建的所有目标的信息,但一次最多只能显示 9 个目标(如果你愿意,可以显示一系列 'pages')。
问题是我在 'clearing' 这个地区遇到了问题。 我正在尝试通过将比例更改为 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 用于稍后重新激活目标
两个打印语句都起作用,但 none 的目标实际上消失了。我不太确定为什么它不起作用。
与其缩小对象,不如使用 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;