我试图制作一部BTD游戏。对于我的塔,我已经在每个GameObject上放置了一个升级按钮,并将其附加到GameObject(塔)本身。每次选择新塔时,都会出现新塔的按钮,之前选择的塔的按钮消失。但是,我的问题是每当我选择一个新的塔稍微边缘(足以看不对齐)时,按钮的位置会发生变化,即使按钮的位置表示相同的X,Y和Z值。我目前正在使用此代码来告诉GameTower按钮的位置:
clone.transform.GetChild(9).GetChild(0).localPosition = new Vector3 (-50, 17, 0).
无论如何,即使通过克隆也可以固定按钮的位置(前一段代码不起作用?如果需要,我很乐意扩展和分享我的代码。
答案 0 :(得分:0)
我不知道为什么这个职位会突然改变。 但我认为你应该看看其中的一些观点。
会发生什么:
使用getchild.getchild.localposition也是不正确的。 您应该尝试创建一个知道其子项的脚本,以便您可以直接从该脚本中获取子项。
类似这样的事情
父母的脚本
public GameObject ButtonsContainer
{
get
{
return buttonsContainer;
}
}
[SerializeField] private GameObject buttonsContainer;
改变清醒位置的脚本
[SerializeField] private Script parentScript;
[SerializeField] private Vector3 buttonPosition;
void Awake()
{
parentScript.ButtonsContainer.transform.localPosition = buttonPosition;
}