You can mark a GameObject as inactive to temporarily remove it from the Scene. To do this, navigate to the Inspector and uncheck the checkbox next to the GameObject’s name (see image below), or use the activeSelf property in script.
When you deactivate a parent GameObject, you also deactivate all of its child GameObjects.
The deactivation overrides the
activeSelf setting on all child GameObjects, so Unity makes the whole hierarchy inactive from the parent down. This does not change the value of the
activeSelf property on the child GameObjects, so they return to their original state when you re-activate the parent.
Note: This means that you can’t determine whether or not a child GameObject is currently active in the Scene by reading its activeSelf property, because even though it is set as active, one of its parents might be set as inactive.
Instead, if you need to determine whether it’s currently active in the scene, you should use the activeInHierarchy property, which takes the overriding effect of its parents into account.