【Unity3D】实用的Attribute(属性)

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;

猜你喜欢

转载自blog.csdn.net/Dawson_Ho/article/details/81190596
今日推荐