Unity檢視面板(Inspector)的屬性顯示
阿新 • • 發佈:2018-11-26
程式碼:
using System.Collections; using System.Collections.Generic; using UnityEngine; [AddComponentMenu("自己的指令碼/Test_Inspector")] //只能用在類上,在選單欄Commponent會增加一個 自己的指令碼/Test_Inspector 的選項, //用於在物體身上新增該指令碼 [RequireComponent(typeof(Rigidbody))] //在物體新增該指令碼時,會自動新增Rigidbody元件 //typeof()中可以寫自己的指令碼,做到一次新增多個指令碼的效果。 //需要注意的是,在該指令碼還掛在物體上時,不能將typeof()中新增的元件解除安裝 [RequireComponent(typeof(Collider))] public class Test_Inspector : MonoBehaviour { [SerializeField] //強制去序列化一個private的欄位,也就是說欄位雖然是private的,但還是可以在Inspector面板來調整數值 private int SerializeField; [HideInInspector] //和上面的正好相反,將public的欄位不在Inspector面板上顯示。 public int HideInspector; [System.NonSerialized] //同樣的將public的欄位不在Inspector面板上顯示 public int NonSerialized; [Range(1,10)] //滑動條來控制數值,最大值10,最小值1 public int range; [Tooltip("我就是說明文字")] //當滑鼠游標停在欄位上時,顯示說明文字 public string prompt; [Space(20)] //設定欄位上方空間為20,用於設定欄位的間距 public float space; [Header("我是標題")] public float title; //在欄位上方顯示標題 [Multiline(5)] //用於顯示多行文字 public string multiline; [TextArea(1,5)] //設定多行輸入的文字欄位,設定顯示的最大值和最小值 public string text; [System.Serializable] //只可以對class,struct,enum,delegate進行序列化,不可對屬性序列化。 private enum Temp { test01 = 0, test02 = 1 } }
效果如下: