unity3d Unity将子元素添加到子元素,但在顶部

jum4pzuy  于 2023-06-24  发布在  其他
关注(0)|答案(3)|浏览(309)

我试图将一个子对象添加到子对象的集合中,但我想确保最新的对象是第一个。
这就是我正在尝试做的:

GameObject
- (My new object here)
- GameObject
- GameObject
- GameObject

下面是我用来示例化预制件的代码:

GameObject messageObj = Instantiate(storyPrefab) as GameObject;
messageObj.name = "Story";
messageObj.transform.parent = wallGrid.transform;
messageObj.transform.localScale = new Vector3(1,1,1);

希望这有意义。
任何帮助都是预先感谢的:-)

envsm3lx

envsm3lx1#

您可以使用Transform.SetSiblingIndex更改层次结构中的顺序。
因此,基本上,您希望将第一个索引设置为所需的元素:

messageObj.transform.SetSiblingIndex(0);
vatpfxk5

vatpfxk52#

有一个专门的方法:

transform.SetAsFirstSibling();
p4rjhz4m

p4rjhz4m3#

我知道,这个问题已经问了很长时间,别人已经写出了解决问题的正确答案:

messageObj.transform.SetSiblingIndex(0);

但是在你的代码中,不需要将子对象放大到(1,1,1)。将你的代码改为:

GameObject messageObj = Instantiate(storyPrefab, wallGrid.transform);
messageObj.name = "Story";

当你在Instantiate方法中设置parent作为第二个参数时,它会将parent设置为示例化的GameObject,并且不需要扩展它。

相关问题