You can mark a GameObjectThe fundamental object in Unity scenes, which can represent characters, props, scenery, cameras, waypoints, and more. A GameObject’s functionality is defined by the Components attached to it. More info
See in Glossary as inactive to temporarily remove it from the SceneA Scene contains the environments and menus of your game. Think of each unique Scene file as a unique level. In each Scene, you place your environments, obstacles, and decorations, essentially designing and building your game in pieces. More info
See in Glossary. To do this, navigate to the InspectorA Unity window that displays information about the currently selected GameObject, Asset or Project Settings, allowing you to inspect and edit the values. More info
See in Glossary 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. This means that you can’t determine whether or not a child GameObject is currently active in the Scene by reading its activeSelf property. Instead, you should use the activeInHierarchy property, which takes the overriding effect of the parent into account.
If you want to change the activeSelf settings of a GameObject’s child Gameobjects, but not the parent, you can use code like the following:
void DeactivateChildren(GameObject g, bool a)
{
g.activeSelf = a;
foreach (Transform child in g.transform)
{
DeactivateChildren(child.gameObject, a);
}
}