[英]How to prevent Scale from changing Sizes?
在上一篇文章中,我询问了如何调试秤的问题: 调试秤
解决问题后,似乎还有另一个我不了解的问题。 我正在尝试删除按钮列表并填充新的按钮列表(刷新)。
我介绍了删除按钮然后再添加回来的功能。 我使用的是用于设置原始按钮的相同脚本MakeAllButtons
。
当我删除按钮列表并重新添加按钮列表时,它看起来像这样。 比例缩小到.3。
如果我添加另一个按钮列表(只需再次单击“ Add
),它看起来像这样:
按钮列表的比例返回到其预期的位置。
添加按钮代码:
public void MakeAllButtons()
{
for (int i = 0; i < positionList.Count; i++)
{
Position position = positionList[i];
PlayerPrefs.SetInt("PositionUnlocked" + i, position.unlocked); //sets if the item is unlocked
GameObject newButton = buttonObjectPool.GetObject();
newButton.transform.SetParent(positionPanel, false); //this was the problem originally
ButtonDetails buttonDetails = newButton.GetComponent<ButtonDetails>();
buttonDetails.SetupPosition(position, this);
}
}
删除按钮代码
public void RemoveButtons()
{
while (positionPanel.childCount > 0)
{
GameObject toRemove = positionPanel.transform.GetChild(0).gameObject;
buttonObjectPool.ReturnObject(toRemove);
}
}
创建newButton
后,以某种方式将newButton.localScale
设置为.3,但仅适用于代码的首次运行。
看来,当我删除对象时,它正在存储上一次加载的比例。
因此,我强制新对象具有所需的比例,从而解决了该问题。
GameObject newButton = buttonObjectPool.GetObject();
newButton.transform.localScale = new Vector3(1, 1, 1);
newButton.transform.SetParent(positionPanel, false);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.