Unity实用属性(Attribute)

  • 因为unity主要用c#语言,而c#语言具有强大的属性(Attribute)功能。今天就来讲讲一些unity的实用属性。
  • RequireComponent:约束组件
  • SerializeField:序列化区域
  • Range(float min, float max):区域约束
  • Tooltip(string tooltip):提示
  • Space(float height):间隔
  • Header(string header):显示文字
  • Multiline(int lines):多行文本框
  • TextArea(int minlines, int maxlines):多行文本框(滑动条)
  • ContextMenu(string item):组件菜单
  • DisallowMultipleComponent:不能在一个对象上重复添加该脚本
  • AddComponentMenu(string menuItem):在Component菜单中添加一项
  • 以后补充


因为unity主要用c#语言,而c#语言具有强大的属性(Attribute)功能。今天就来讲讲一些unity的实用属性。

RequireComponent:约束组件

实用方法:[RequireComponent(typeof(Rigidbody))]
在某个自定类(派生于MonoBehavior)前写上这个属性,
那么当附加该组件的时候,会强制自动添加组件typeof(Rigidbody) RequireComponent约束的组件。是不能删除的。除非先删除当前自定义脚本。
PS:可以多个 typeof()

SerializeField:序列化区域

实用方法:[SerializeField]
写在(派生于MonoBehavior)类中的变量上,实际效果如同变量前加个 public
好处就是,你可以给变量定义成私有或者保护,并且显示在Inspector中。

Range(float min, float max):区域约束

实用方法:[Range(1, 5)]
写在(派生于MonoBehavior)类中的变量上。
这时,该变量在Inspector区域内显示成一个拖动条。
PS:也可以写在数组变量上。

Tooltip(string tooltip):提示

实用方法:[Tooltip(“这就是测试”)]
写在(派生于MonoBehavior)类中的变量上。
这时,当鼠标移动到Inspector区域的该变量上,会出现一个提示。

Space(float height):间隔

实用写法:[Space(60)]
写在(派生于MonoBehavior)类中的变量上。
这时,该变量在Inspector区域内将于上一个变量之间空开60像素。

Header(string header):显示文字

实用写法:[Header(“显示字符串”)]
写在(派生于MonoBehavior)类中的变量上。
这时,该变量在Inspector区域的显示上一行中显示显示字符串

Multiline(int lines):多行文本框

实用写法:[Multiline(5)]
写在(派生于MonoBehavior)类中的string变量上。
这时,该变量在Inspector区域的显示为一个多行编辑框。

TextArea(int minlines, int maxlines):多行文本框(滑动条)

实用写法:[TextArea(1,7)]
写在(派生于MonoBehavior)类中的string变量上。
这时,该变量在Inspector区域的显示为一个多行编辑框,超出了最大行,就会显示滚动条。

ContextMenu(string item):组件菜单

实用写法:[ContextMenu(“ShowName”)]
写在(派生于MonoBehavior)类中的方法上。
这时,挂有该脚本的对象的Inspector的脚本的右上角三个点的按钮中多出一个菜单按钮。

DisallowMultipleComponent:不能在一个对象上重复添加该脚本

实用写法:[DisallowMultipleComponent]
写在(派生于MonoBehavior)类上。
这时,挂有该脚本的对象不能再挂这个类。

AddComponentMenu(string menuItem):在Component菜单中添加一项

实用写法:[AddComponentMenu(“新功能/生成cs文件”)]
写在(派生于MonoBehavior)类上。
这时,在菜单Component中出现了你的自定义的菜单按钮。

以后补充