Unity3D HideFlags
- 2020 年 1 月 6 日
- 筆記
這個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函數,在

面板中會隱藏 ,但是使用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中所有的組件將隱藏。若對某個組件使用,則只有其組件隱藏。