Search code examples
c#unity-game-engineparent-childgameobject

Unity add child to children, but at top


I am trying to add a child object to a collection of children, but I want to make sure the the latest will be the first.

Here is what I am trying to do:

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

Here is the code I am using to instantiate my prefab:

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

Hope this makes sense.

Any help is apreciated and thanks in advance :-)


Solution

  • You can change the order in the hierarchy using Transform.SetSiblingIndex.

    So basically you'd want to set the first index to your desired element:

    messageObj.transform.SetSiblingIndex(0);