Unity3D HideFlags

这个HideFlags是一个enum 。而且其中的作用和DontDestroyOnLoad函数的作用是一致的。HideFlags的枚举成员有 : DontSava , HideAndDontSave , HideInHierarchy , HideInInspector , None(默认),NotEditable。

我的Unity版本是:5.4.0f3。在这个版本测试 : 

一 ,DontSave和HideAndDontSave的效果是一样的。HideAndDontSave的功能:如果GO被HideAndDontSave表示go.hideFlags = HideFlags.DontSave(在Transform中则无效)。在退出程序时,需要手动销毁,不然会产生内存泄漏:DestroyImmediate函数,在Unity3D HideFlags

面板中会隐藏 ,但是使用DontSave也会隐藏。不管了。

具体:

    public void OnApplicationQuit()
    {
        @go = GameObject.Find("Cube");
        if (@go != null)
        {
            Debug.Log("必须要强制消除上个Scene的Cube!");
            DestroyImmediate(@go);
        }
    }

它们和DontDestroyOnLoad的效果是一样的。会重复制造@go(子对象不会)。这点一定要注意,虽然说在Hierarchy看不见 , 但在Scene面板中拖动一下,就会发现在复制。


二,HideInHierarchy 在Hierarchy面板中隐藏(子对象有效)。只有在Awake方法中使用才有效。


三,HideInInspector在Inspector面板中隐藏(子对象无效)。若在GO中使用,则GO中所有的组件将隐藏。若对某个组件使用,则只有其组件隐藏。