- Home /
When and why to put object as child of another?
I am an amateur game developer, lets get that said first and foremost. As I have been working on my game for a few months now, I am starting to face to some design decisions in regards to how I should structure my game objects in the scene hierarchy. Right now I place them where I think it makes sense:
I have a empty game object that has children that are the managers and systems.
I have a terrain with the terrain elements (rocks, trees, grass, etc) as children of the terrain they are part of.
I have a character spawner that is placed .... well, not quite sure yet. Hence the question.
Are there a set of inherent rules when it comes to deciding what should be a parent or child of something else. I figure it mainly matters in regards to position and rotation but I cant think of any other reason why other than simply organizing. I presume if everything was on the same level then the game could still function than if it were well organized with an actual hierarchy.
When should I child an object and why, or why not?
Answer by xxmariofer · Dec 10, 2020 at 09:19 AM
You are right, you should make the objects childs when they want to get affected by the transform of the parent or for organization porpuse using empty gameobjects. there is no rule, so basically you get to decide what better suits for your game
Answer by Duckocide · Dec 10, 2020 at 09:35 AM
Unity offers a number of helper methods to help navigate the hierarchy. Methods like GetComponentsInChildren<> can be quite useful. Especially when you are spawning lot's of dynamic objects that are affected by parent transforms. For example, imagine a platform gameobject that moves around. You can easily spawn objects (creatures?) on to the platform (i.e. a child of the platform gameobject) and manipulate their "local" Transform properties (like transform.localPosition, etc). As the platform moves, they move and in turn they move on the platform (via the local manipulations). When you want to get to them in to a platform or other game manager script/behaviour, you can use the GetComponentsInChildren on the platform gameobject or transform.
I must say as well, you sometimes need a hierarchy just to organise things a little. Not ideal this but we are only human!
Your answer
Follow this Question
Related Questions
Models Disappeared in Scene but shows in Hierarchy -2 Answers
Drag and drop gameobject to new parent without changing local position (manually, not with script) 1 Answer
Parse Scene Hierarchy 1 Answer
Scene items are not showing in hierarchy nor in scene window in unity 5 0 Answers
Can't drag assets from Project folder to Hierarchy/Scene 2 Answers