特性(Attribute):用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。可以通过使用特性向程序添加声明性信息。一个声明性标签是通过放置在它所应用的元素前面的方括号([ ])来描述的。
[Serializable]
使用[Serializable]特性来标记一个类,使其可以被序列化。
这样,你就可以将该类的实例转换为字节流,保存到文件或通过网络发送,然后再将其反序列化为对象。这对于保存和加载游戏对象的状态、玩家进度等信息非常有用。
在Unity编辑器中,脚本组件可以在Inspector面板中显示,提高开发效率。
[serializedField]
如果是字段的是私有的字段,将公开在面板方便操作。
[Header]
特性则用于在Inspector面板中为属性组添加标题,使得属性的组织更加清晰。
[Tooltip]
鼠标放属性上会有提示内容
[Range]
给属性加滑动条,可以设定范围,拖动改变值.
[HelpURL]
给类提供一个自定义文档URL。如图可以按Ctrl+鼠标左键跳转到目标。
[Space]
Inspector界面属性的间隔 ,这个有意思,如果觉得属性太密集觉得不舒服可以加个这个.或者几类属性之间想做个间隔的时候用
[ColorUsage]
[ColorUsage]可以修改Color的配置,是否显示Alpha通道,或者使用HDR模式。
[TextArea]
文本空间,默认三行 也可以设定范围 设定最低和最多的行数,多的滚动条滑动,少的时候显示最低的行数 不设定,也是最低3行
[HideInInspector]
[HideInInspector]特性用于隐藏公共字段在Inspector面板中的显示,这对于那些不需要用户直接编辑的内部状态变量非常有用。
[InitializeOnLoad]
[InitializeOnLoad]特性用于在编辑器启动时或脚本重新编译后自动执行指定的操作。这在初始化编辑器扩展、注册事件监听器或设置默认配置时非常有用。
[PostProcessScene]
使用[PostProcessScene]特性来标记一个方法,使其在场景加载后自动执行某些操作,如初始化场景数据或设置特殊效果。
[Conditional]
使用[Conditional]特性来标记一个方法,使其只在特定条件下编译和执行,通常用于调试目的
[RequireComponent]
[RequireComponent]特性用于自动为附加该特性的脚本组件添加其他组件。这在确保组件之间的依赖关系时非常有用。
[AddComponentMenu]
[AddComponentMenu] 可以添加一个组件菜单项到编辑器里。
[ContextMenu]
[ContextMenu] 为挂载脚本的物体的Inspector界面脚本添加一个脚本右键选项,点击执行方法内的逻辑
[ContextMenuItem]
[ContextMenuItem] 字段右键菜单添加一个自定义方法,鼠标在上边右键弹出点击执行对应方法,两个参数一个是弹出的名称,第二个是要执行的方法名
[CreateAssetMenu]
[CreateAssetMenu] 用于ScriptableObject的子类,将这个类(相当于资源文件添加到Asset菜单项中),关于ScriptableObject具体可以看这位大神的博客