Attribute(属性)的作用直接体现在Inspector窗口中,通过使用Attribute,可以对Inspector窗口的内容进行灵活展现和管理,相当于一个辅助工具。
RequireComponent用于给Object添加必要的组件,也可以理解为通过代码代替“Add Component”的操作,能够有效避免由于忘记添加必要的组件而造成的报错,同时也适用于为多个Object添加相同组件的场景,省去了重复操作。
另外RequireComponent代码需要放在类的前面
[RequireComponent(typeof(Rigidbody))]
[RequireComponent(typeof(AudioSource))]
需要注意的是,当要移除通过RequireComponent添加的组件时,需要先移除脚本,否则产生如下警告。
Range为变量限定取值范围,但仅限于在Inspector窗口中,也就是说,通过代码改变变量的值是不受Range约束的
[Range(1, 5)]
public int Speed;
[Range(0,1)]
public float Time;
Space使Inspector窗口中字段之间的间隔增大
public float Max;
public float Min;
[Space()]
public float Speed;
一般来说,只有public的变量才会显示在Inspector窗口中,但SerializeField可以忽略访问修饰符,使private的变量也能显示
private bool NotInInspector;
[SerializeField] private bool InInspector;
使public的字段不显示在Inspector窗口中
[HideInInspector]
public float Hide;
public float notHide;
为Inspcetor窗口中的字段附加一段文字说明
[Tooltip("Health value between 0 and 100.")]
public int Health = 100;
给Inspector字段加标题,实现分组
[Header("Text")]
public Text hp;
public Text mp;
public Text power;
public Text defense;