特性
特性:就是一種聲明性的標簽,例如 類、結構體、枚舉、字段(變量)等
可以大致的分為以下三個方面:
一、修飾字段
[Header(" ")]:面板標題 在 Unity 的 Inspactor 面板上顯示一個標題
[Tooltip(" ")]:懸停的注釋 當鼠標懸停在 Inspector 面板上的該變量上時,顯示有一個 Tip 提示,提示的內容就是參數
[Space( )]:上下字段的空行 僅能修飾字段,使該字段與上一個字段間出現間隔
[Range( , )]:顯示滑條范圍 修飾 float 類型和 int 類型,使其在 Inspector 面板上顯示成一個滑動條,參數是最小值和最大值
[Multiline( )]:顯示文本 僅能修飾字符串,使其顯示多行,默認不寫參數的話顯示 3 行
[TextArea( )]:顯示文本 顯示一個帶有滾動區域的文本框,默認顯示 3 行,超過 3 行顯示滾動條
例如:[ TextArea(2,3) ] 最少顯示 2 行,最多顯示 3 行,超過 3 行顯示滾動條
[HideInInspector]:隱藏 public 字段 僅僅是在 Inspector 面板上隱藏了,該變量還是可序列化的
[SerializeField]:轉成可序列化 修飾變量,使得其可轉變成可序列化對象, 私有的變量一般都是不可序列化的
[System.NonSerialized]:轉成不可序列化 修飾字段,使其變成不可序列化對象,它是屬於 System 命名空間下的
[ContextMenuItem("Button","Text")]:使其鼠標右鍵在 Inspector 面板上點擊該變量時,出現一個按鈕
第一個參數表示按鈕的名字,第二個參數表示要執行的方法,保證要有該方法且需要成員方法
二、修飾方法
[ContextMenu(" ")]:修飾成員方法,使其在該腳本右上方的齒輪里出現一個以參數為名的選項 點擊該選項,執行這個特性的修飾方法
[MenuItem(" ")]:修飾靜態方法,使其在菜單欄多出一個選項,參數是一個層級結構,至少兩層(需要引入 “UnityEditor” 命名空間)
例如:[MenuItem("MyTools/MenuItemTest")] 將在菜單欄 MyTools 下出現 MenuItemTest 方法選項
UnityEditor:命名空間
三、修飾類
[System.Serializable]:修飾類或結構體,使該對象變為可序列化的
該類下的可序列化字段在 Inspector 面板上顯示
[AddComponentMenu(“ ”, )]:在 AddComponent 按鈕下加一個菜單選項
第一個參數是支持層級結構的, 第二參數代表第一個選項參數的順序
[RequireComponent(typeof(BoxColider))]:該特性的意思是,修飾的類依賴於參數里的類
當修飾的類掛到物體上時,會檢查該物體上是否有依賴的組件,如果有,就不會重復的添加,如果沒有依賴的組件,會默認添加依賴的組件
[ExecuteInEditMode]:修飾的類在編輯模式下執行,Awake()、Start()、Update() 方法都會執行
(與運行模式不同, 該特性修飾的類,是指在場景中的某個物體發生改變時執行)
***| 以上內容僅為學習參考、學習筆記使用 |***