Unity中的[xxx] 特性

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模式)起作用
添加这个属性后的脚本可以在EditMode下执行,有些函数的执行方式与PlayMode不同:
Update :编辑器中某个组件发生变化(如在编辑器中修改数值)=> 触发
OnGUI :当 GameView 收到一个 Event 时 => 触发

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值