C# 特性(Attribute)
在C#中,[] 符号在字段、属性、方法、类、接口等上面通常用于定义特性(Attributes)。特性是一种特殊的类型,它提供元数据(metadata)给代码,这些元数据可以在运行时被反射(Reflection)API查询。(个人感觉类似于java的注解)
标记属性
[Spcae] | 与上方的间隔,可以传一个浮点数默认值是8f |
[Header("提示信息")] | 在当前字段的上方加一段文字描述 |
[Tooltip("提示信息")] | 鼠标悬停在当前字段时,会显示提示信息 |
[Range(min, max)] | 限制数值类型变量的取值范围并以滑动条显示 |
[Min(min)] | 限制一个数值类型的变量的最小值 |
[SerializeField] | 强制序列化一个私有的变量,使其可以在Inspector面板显示 |
[NonSerialized] | 在Inspector版面中隐藏public属性,不执行序列化 |
[HideInInspector] | 使属性在Inspector中隐藏,但是还是可序列化 |
[System.Serializable] | 使自定义的类能进行序列化,即当做一个public成员的时候可以在Inspector显示 |
[InspectorName(“枚举A”)] | 标记枚举类型的枚举值,可以使枚举值在Inspector上显示的名字改变 |
[ContextMenuItem(“显示的方法名”,“方法”)] | 标记字段,在Inspector面板上给字段右键段添加一个菜单,不能是静态函数 |
[Multiline] | 添加在string类型的变量上,可以在Inspector面板上显示一个多行文本框 |
[TextArea] | 该属性可以把string在Inspector面板上变为一个带有滚动条的文本域 |
[GradientUsage] | 给一个 Gradient 类型的变量添加这个属性用来设置是否为 HDR 渐变模式 |
[Delayed] | 标记int/float/string类型的变量,在Inspector面板修改变量值时,只有按下Enter键 或 鼠标失去焦点后值才会改变 |
标记类/方法
[RequireComponent(typeof(ClassName))] | 向 GameObject 添加使用 RequireComponent 的脚本时,会自动将需要的组件添加到 GameObject 中。 这对避免设置错误非常有用。 |
[ExecuteAlways] | 添加这个属性后脚本无论是在 Edit Mode 还是 Play Mode 都会执行。(每次切换状态时要运行一次) |
[ExecuteInEditMode] | 在编辑界面让你的功能(类)(非Play模式)起作用 |