Unity 扩展编辑器 - Inspector 面板特性用法整理

牛嘉谊
2023-12-01

不了解C#特性的可以去查一下c#特性的用法,当然这里不了解特性的也不影响使用下面的特性功能

一、修饰字段

           [Header("标题")] : 面板标题  在U3D的Inspactor面板显示一个标题

           [Tooltip("血量")]   : 悬停的注释   当鼠标悬停在该变量在Inspector面板上时,显示有一个Tip提示,提示内容就是参数

           [Space( )]  :  上下字段的空行   仅能修饰字段,使该字段与上一个字段间出现间隔

           [Range(10,100)]   : 显示滑条范围   修饰float和int类型,使其在Inspector显示成一个滑动条,参数是最大值和最小值

           注: 参数只能显示在面板操作的最大最小值,并不能限制实际的值

           显示文本: [Multiline(5)]  : 仅能修饰字符串,使其显示多行,默认不写参数显示3行 : 此处显示的是5行

           [TextArea()]   : 显示一个带有滚动区域的文本框,默认显示3行,超过3行显示滚动条, 例如: [ TextArea(2,5) ]  最少显示2行,最多显示5行,超过5行显示滚动条

           [HideInspector]  :  隐藏字段  , 仅仅在 Inspector隐藏了,该变量还是和 可序列化的

           小注释: 一般公共的基础类型的变量都是可序列化的转成可序列化     [SerializeField]    : 修饰变量的,使得其可转变成可序列化对象, 私有的变量一般都是不可序列化的

          [System.NonSerialized]  : 修饰字段,使其变成不可序列化对象,它是System命名空间下的

          [ContexMenuItem("Funcl","Text")] : 使其在Inspector面板鼠标,右键点击该变量时,出现一个按钮第一个参数 表示 按钮的名字 ,第二个参数,表示要执行的方法,保证要有该方法且需 要成员方法

二、修饰方法

          [ContexMene(" ")]    :  修饰成员方法,使其在该脚本的右上侧齿轮里出现一个 名字叫做该参数的选项点击该选项,执行该特性的修饰方法

        [UnityEditor.MenuItem(" ")]   : 修饰静态方法,使其在菜单栏多出一个选项,参数是一个层级结构,至少两层UnityEditor: 命名空间

三、修饰类

          [System.Serializable]   :  修饰类或结构体,使其该对象变为可序列化的该类下的可序列化字段在Inspector面板显示

         [AddComponentMenu(" ",3 )]  :   在AddComponent按钮下加一个菜单选项第一个参数是支持层级结构的, 第二参数代表第一个选项参数的顺序

         [RequireComponent(typeof(BoxColider))]   :  该特性 意思是, 修饰的类依赖于参数里的类,当修饰的类挂到物体上时,会检查该物体上是否有依赖的组件,如果有,不会重复的添加,如果没有依赖的组件,会默认添加依赖的组件

        [ExecuteInEditMode]   :  修饰的类在编辑模式下执行, Awake Start  Update  都会执行

        注释: 与运行模式不同, 该特性修饰的类 是指在场景中的某个物体发生改变时 执行

        [InitializeOnLoad] : 允许在 Unity 加载时重新编译脚本时初始化 Editor 类。
重新编译项目中的脚本时,会调用带有此属性的静态构造函数。在 Unity 首次加载项目时、在 Unity 检测到脚本修改时,以及当进入运行模式时,会进行此调用。

 类似资料: