【Unity】Inspector属性

2019-04-14 17:47发布

Attribute(属性)的作用直接体现在Inspector窗口中,通过使用Attribute,可以对Inspector窗口的内容进行灵活展现和管理,相当于一个辅助工具。  
  • RequireComponent

RequireComponent用于给Object添加必要的组件,也可以理解为通过代码代替“Add Component”的操作,能够有效避免由于忘记添加必要的组件而造成的报错,同时也适用于为多个Object添加相同组件的场景,省去了重复操作。 另外RequireComponent代码需要放在类的前面 [RequireComponent(typeof(Rigidbody))] [RequireComponent(typeof(AudioSource))]
需要注意的是,当要移除通过RequireComponent添加的组件时,需要先移除脚本,否则产生如下警告。
 
  • Range

Range为变量限定取值范围,但仅限于在Inspector窗口中,也就是说,通过代码改变变量的值是不受Range约束的 [Range(1, 5)] public int Speed; [Range(0,1)] public float Time;  
  • Space

Space使Inspector窗口中字段之间的间隔增大 public float Max; public float Min; [Space()] public float Speed;  
  • SerializeField

一般来说,只有public的变量才会显示在Inspector窗口中,但SerializeField可以忽略访问修饰符,使private的变量也能显示 private bool NotInInspector; [SerializeField] private bool InInspector;  
  • HideInInspector

使public的字段不显示在Inspector窗口中 [HideInInspector] public float Hide; public float notHide;  
  • Tooltip

为Inspcetor窗口中的字段附加一段文字说明 [Tooltip("Health value between 0 and 100.")] public int Health = 100;  
  • Header

给Inspector字段加标题,实现分组 [Header("Text")] public Text hp; public Text mp; public Text power; public Text defense;