# HideFlags

> Bit mask that controls object destruction, saving and visibility in inspectors.

## Definition

* **Type:** Enum
* **Namespace:** [UnityEngine](/engine/6000.0/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

```csharp
[Flags]
public enum HideFlags
```

## Remarks

Additional Resources: [Object.hideFlags](/engine/6000.0/script-reference/unityengine/object/hideflags.md).

```csharp
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour
{
    // Creates a material that is explicitly created & destroyed by the component.
    // Resources.UnloadUnusedAssets will not unload it, and it will not be editable by the inspector.
    private Material ownedMaterial;
    void OnEnable()
    {
        ownedMaterial = new Material(Shader.Find("Diffuse"));
        ownedMaterial.hideFlags = HideFlags.HideAndDontSave;
        GetComponent<Renderer>().sharedMaterial = ownedMaterial;
    }

    // Objects created as hide and don't save must be explicitly destroyed by the owner of the object.
    void OnDisable()
    {
        DestroyImmediate(ownedMaterial);
    }
}
```

If you set `HideFlags` to `DontSaveInEditor`, `DontSaveInBuild`, or `HideInHierarchy`, the object is removed internally from the Scene and from from its current physics scene. This includes both 2D and 3D physics scenes. The object also triggers its `OnDisable` and `OnEnable` calls.

You can use these flags to control whether instantiated assets, such as ScriptableObjects and Materials, that have not yet been saved to the project using [AssetDatabase](/engine/6000.0/script-reference/unityeditor/assetdatabase.md) (that is, they are not persistent) are serialized to the scene or not.

## Fields

| Value                                                                                                   | Description                                                                                                                                                                                                          |
| ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [DontSave](/engine/6000.0/script-reference/unityengine/hideflags/dontsave.md)                           | The object will not be saved to the Scene. **It will not be destroyed when a new Scene is loaded**. It is a shortcut for HideFlags.DontSaveInBuild \| HideFlags.DontSaveInEditor \| HideFlags.DontUnloadUnusedAsset. |
| [DontSaveInBuild](/engine/6000.0/script-reference/unityengine/hideflags/dontsaveinbuild.md)             | The object will not be saved when building a player.                                                                                                                                                                 |
| [DontSaveInEditor](/engine/6000.0/script-reference/unityengine/hideflags/dontsaveineditor.md)           | The object will not be saved to the Scene in the editor.                                                                                                                                                             |
| [DontUnloadUnusedAsset](/engine/6000.0/script-reference/unityengine/hideflags/dontunloadunusedasset.md) | The object will not be unloaded by Resources.UnloadUnusedAssets.                                                                                                                                                     |
| [HideAndDontSave](/engine/6000.0/script-reference/unityengine/hideflags/hideanddontsave.md)             | The GameObject is not shown in the Hierarchy, not saved to the Scene, and not unloaded by [Resources.UnloadUnusedAssets](/engine/6000.0/script-reference/unityengine/resources/unloadunusedassets.md).               |
| [HideInHierarchy](/engine/6000.0/script-reference/unityengine/hideflags/hideinhierarchy.md)             | The object will not appear in the hierarchy.                                                                                                                                                                         |
| [HideInInspector](/engine/6000.0/script-reference/unityengine/hideflags/hideininspector.md)             | It is not possible to view it in the inspector.                                                                                                                                                                      |
| [None](/engine/6000.0/script-reference/unityengine/hideflags/none.md)                                   | A normal, visible object. This is the default.                                                                                                                                                                       |
| [NotEditable](/engine/6000.0/script-reference/unityengine/hideflags/noteditable.md)                     | The object is not editable in the Inspector.                                                                                                                                                                         |
