我试图将预制件实例化为一个孩子,我希望它的位置与它的父级完全相同。不知何故,预制件没有在完全相同的位置实例化。
父母也是另一个对象的孩子。为清楚起见:
“可选择(克隆)”是实例化的预制件。我希望这个职位与“Lader”职位相同。
我的代码:
Vector3 position = new Vector3(0, 0, 0);
GameObject obj = Instantiate(prefab);
obj.transform.parent = parent.transform;
obj.transform.localPosition = position;
有人可以帮我吗?提前谢谢!
答案 0 :(得分:1)
我认为这就是你要找的东西。确保子枢轴和父枢轴都居中。
GameObject obj = Instantiate(prefab);
obj.transform.SetParent(parent, false);
答案 1 :(得分:0)
也许你可以尝试这样的事情:
First Responder
答案 2 :(得分:0)
在这里,你没有指定新的GameObject是任何东西的孩子,所以一定要这样做。
public GameObject parentLadder;
public GameObject prefab
接下来,不要调用变量位置,因为它已经是一个统一的全局。
Vector3 pos = (0,0,0)
然后实际实例化我们的对象并将其设置为父变换。
GameObject obj = Instantiate(prefab, transform.position, transform.rotation) as GameObject;
obj.transform.position = parentLadder.transform.position;
obj.transform.localPosition = pos;
答案 3 :(得分:0)
您在设置父级之前是否尝试设置位置?
Vector3 position = new Vector3(0, 0, 0);
GameObject obj = Instantiate(prefab);
obj.transform.Position = parent.transform.position;
obj.transform.parent = parent.transform;
答案 4 :(得分:0)
您可以使用Instantiate()实例化直接子转换的对象
尝试:
Instantiate(GameObeject, transformPosition, Quaternion.identity, transformParent);
示例:
Instantiate(popUpMsg, Canvas.transform.position, Quaternion.identity, Canvas.transform);
现在PopUp GameObject是Canvas的孩子