控制对象销毁、保存和在检查器中可见性的位掩码。
其他资源:Object.hideFlags.
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); } }
如果您将 `HideFlags` 设置为 `DontSaveInEditor`、`DontSaveInBuild` 或 `HideInHierarchy`,该对象将从场景及其当前物理场景中内部移除。这包括 2D 和 3D 物理场景。该对象还会触发其 `OnDisable` 和 `OnEnable` 调用。
您可以使用这些标志来控制是否将使用 AssetDatabase 尚未保存到项目的实例化资源(例如 ScriptableObjects 和 Materials)(即它们不是持久性的)序列化到场景中。
无 | 普通可见对象。这是默认值。 |
HideInHierarchy | 该对象不会显示在层次结构中。 |
HideInInspector | 无法在检查器中查看。 |
DontSaveInEditor | 该对象不会保存到编辑器中的场景。 |
NotEditable | 该对象在检查器中不可编辑。 |
DontSaveInBuild | 在构建播放器时,该对象不会保存。 |
DontUnloadUnusedAsset | 该对象不会被 Resources.UnloadUnusedAssets 卸载。 |
DontSave | 该对象不会保存到场景。加载新场景时不会被销毁。它是 HideFlags.DontSaveInBuild | HideFlags.DontSaveInEditor | HideFlags.DontUnloadUnusedAsset 的快捷方式。 |
HideAndDontSave | 该 GameObject 不显示在层次结构中,不保存到场景,也不被 Resources.UnloadUnusedAssets 卸载。 |