Unity3D HideFlags

发布时间:2019-09-18 07:23:28编辑:auto阅读(1496)

    这个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函数,在wKiom1gcJVGxikWMAAAO2YiOo0E184.png-wh_50

    面板中会隐藏 ,但是使用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中所有的组件将隐藏。若对某个组件使用,则只有其组件隐藏。

关键字