Hierarchy, GameObjects, and Components

The Hierarchy lists every GameObject in the open Unity scene. A GameObject is a container, while its components provide its position, appearance, collision, audio, lighting, animation, or behaviour.

Understanding those three parts makes it much easier to inspect a VRChat world, reorganize a scene safely, and find the object responsible when something stops working.

Try it in a test scene

Select an object in the Hierarchy, inspect its components, then place it under an empty parent to see how local Transforms work.

  1. Select a visible object in the Hierarchy.
  2. Find its Transform and other components in the Inspector.
  3. Create an empty GameObject, rename it, and drag the original object onto it.
  4. Move the parent and watch its child move with it.
VRChat world check

A VRChat world scene needs a VRC Scene Descriptor. The SDK's scene setup creates a VRCWorld GameObject containing the descriptor and related helpers. Keep that object and other important world systems easy to locate, then run the VRChat SDK checks after reorganizing the scene.

Three Unity Terms

Term What it means Where you work with it
Hierarchy The tree of GameObjects in the current scene. Hierarchy window
GameObject A scene container with a name, active state, Transform, tag, layer, and components. Hierarchy and Inspector
Component A feature attached to a GameObject, such as a Renderer, Collider, Light, Audio Source, or script. Inspector

The same GameObject can hold several components. For example, a lamp can use a Mesh Filter and Mesh Renderer for its visible model, a Collider for its physical boundary, and a Light component for illumination.

Select, Create, Rename, and Search

Clicking a GameObject in the Hierarchy selects it and displays its components in the Inspector. This is often more reliable than clicking a small or hidden object in the Scene view.

Common Hierarchy actions in Unity on Windows include:

Task Action
Create an empty GameObject GameObject > Create Empty
Rename the selected GameObject Press F2 or use its context menu
Duplicate the selected GameObject Press Ctrl+D
Delete the selected GameObject Press Delete
Find an object Enter its name or another supported filter in the Hierarchy search field

Clear the search field when you finish. A filtered Hierarchy can make objects appear to be missing even though they are still in the scene.

Read Hierarchy Icons and Prefab Status

Unity uses icons and coloured indicators to show an object's type and prefab state.

Indicator Meaning
Standard GameObject icon A regular scene GameObject
Blue prefab icon and name A prefab instance
Prefab variant icon An instance of a prefab variant
Blue line beside a prefab item The item contains a prefab override
Plus badge A GameObject was added beneath a prefab instance

Prefab indicators matter when editing downloaded VRChat systems or reusable world objects. Before changing or deleting an object inside a prefab instance, check whether it belongs to the prefab and whether the scene already contains overrides.

Active State, Scene Visibility, and Pickability

The Hierarchy contains controls that can look similar but have different effects.

Control What it changes Included in play mode or a build?
GameObject active checkbox Enables or disables the GameObject and its components. An inactive parent also makes its children inactive in the hierarchy. Yes
Scene visibility eye Hides the GameObject and its children from the editor's Scene view. No
Scene picking hand Prevents the GameObject and its children from being selected in the Scene view. No

Scene visibility and pickability are editor tools. They do not disable the GameObject, change what the Game camera renders, or alter the published world.

Use the eye control when a large wall blocks your view while editing. Use the hand control when background geometry keeps being selected instead of the object you need.

Parent and Child GameObjects

Drag one GameObject onto another in the Hierarchy to make it a child. The parent becomes the collapsible top item, and the child is indented underneath it.

A child's Transform is relative to its parent:

  • Moving the parent also moves its children.
  • Rotating the parent changes the children's orientation around it.
  • Scaling the parent also affects its children.
  • The child's Inspector shows its local Position, Rotation, and Scale relative to that parent.

This is useful for a door made from several parts, a room containing its props, or a reusable prefab containing visuals, colliders, audio, and interaction objects.

If a child jumps, rotates unexpectedly, or becomes distorted, inspect the parent chain. Non-uniform scale and unexpected rotations higher in the hierarchy can affect everything below them.

Work With the Transform Component

Every GameObject has a Transform component. It stores:

Property Purpose
Position Location relative to the parent, or world space when the object has no parent
Rotation Orientation relative to the parent
Scale Size multiplier relative to the parent

Use the Transform component's menu when you need to reset its Position and Rotation to zero and Scale to one. Resetting a child resets its local values, so it moves to the parent's origin rather than the scene origin.

For objects that must keep an exact size, avoid placing them below a parent with unusual scale. Check colliders, interactable handles, and visual effects after changing any parent scale.

Add and Inspect Components

Select a GameObject, then use Add Component at the bottom of the Inspector. Search for the component, add it, and configure its properties.

Component Typical job
Mesh Filter References the mesh geometry
Mesh Renderer Draws the mesh using assigned materials
Collider Defines a collision surface or trigger volume
Rigidbody Adds physics behaviour to an object
Light Illuminates the scene
Audio Source Plays an AudioClip from the object
Animator Controls animation states and parameters
Script or Udon behaviour Adds project-specific logic
VRChat component Adds a VRChat-supported world feature

Components work together. A visible solid wall commonly needs a Transform, Mesh Filter, Mesh Renderer, and Collider. Removing or disabling any one of those changes only that part of the object's function.

When a GameObject looks correct but does not behave correctly, inspect the whole component stack. Check whether the relevant component is present, enabled, configured, and supported by VRChat.

Use Empty GameObjects as Parents

An empty GameObject contains only a Transform until you add more components. It can group related objects without adding visible geometry.

Here is one possible top-level structure for a world scene:

World
├── VRCWorld
├── Environment
│   ├── Lobby
│   └── Stage
├── Systems
├── Lighting
├── Audio
└── Interactables

This is an example, not a required VRChat structure. Prefer short, descriptive names that match the actual areas and systems in your world. Keep the hierarchy shallow enough that important objects remain easy to find.

Tags and Layers Are Not Folder Labels

Tags and layers can affect scripts, cameras, lighting, collision, raycasts, and VRChat behaviour. Do not assign them only to make the Hierarchy look organized.

When you change the layer of a parent, Unity may ask whether to apply the change to its children. Read that prompt carefully. A child may need a different layer from its parent.

VRChat reserves several built-in layers and preserves Unity layers 22 through 30 for world creators. Avoid layer 31. See Unity Layers and Tags before changing layers across a hierarchy.

VRChat World Object Checks

After moving, parenting, disabling, or replacing world objects, verify:

Check Why it matters
VRCWorld and VRC Scene Descriptor are present The scene descriptor defines the scene as a VRChat world and stores world settings.
Spawn points still have the intended position and rotation Parent Transform changes can also move child spawn points.
Colliders and triggers use the intended layers Layers affect collision and interaction behaviour.
Interactable references still point to the intended objects Scripts and Udon behaviours may reference specific GameObjects or components.
VRChat components are supported for the target platform VRChat only allows supported world components, with additional Android exceptions.
VRChat SDK validation is clear The SDK can identify scene setup and component problems before a build.

Troubleshooting

Moving one object moves several others

You selected a parent GameObject. Expand it in the Hierarchy to see the children that inherit its Transform. Select the intended child if only one part should move, or remove the parent-child relationship if the objects should be independent.

A child's Position values do not match its location in the scene

The Inspector shows a child's local Position relative to its parent. Inspect the parent Transform, or temporarily compare the object at the scene root, before changing values.

An object appears in the Game view but not the Scene view

Check the eye icon in the Hierarchy. Scene visibility can hide an object from the editor's Scene view without changing the Game camera or build.

I cannot select an object in the Scene view

Check the hand icon in the Hierarchy. Scene picking may be disabled for the object or one of its parents. You can still select it directly in the Hierarchy.

A child is inactive even though its checkbox is enabled

Check every parent above it. A child cannot be active in the hierarchy while one of its parents is inactive.

A VRChat system stopped working after reparenting it

Check the new parent Transform, active state, layer, and any object or component references used by the system. Then run the VRChat SDK validation and test the world locally before uploading.

Before You Finish

  • Expand the major hierarchy groups and check that each object is under the intended parent.
  • Inspect parent Transforms for unexpected rotation or scale.
  • Confirm important systems and spawn points remain active and correctly positioned.
  • Review prefab overrides before applying or reverting them.
  • Check tags and layers on objects whose behaviour depends on them.
  • Save the scene, run VRChat SDK validation, and test the world locally.

Continue Learning

Official References

Next Step

Open one object that matters in your current scene. Identify its parent, Transform, active state, layer, prefab status, and every component responsible for its appearance or behaviour.

Related Navigation