找回密码
 立即注册
查看: 3108|回复: 25

[简易教程] 特性( 在unity里inspector面板的一些用处 )

[复制链接]
发表于 2018-8-28 17:32 | 显示全部楼层 |阅读模式


之前学习c#的时候 碰到[ ] 里一堆英文 ,就发憷,,现在才了解 这种格式的写法叫做 特性

   下面,开始总结一下自己所理解的 特性 和一些 特性的意思:

      特性: 就是一种声明性的标签(类、结构体、枚举、字段(变量)等)

      下面划分了3个方面

    一、修饰字段

           [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  都会执行

                                                       注释: 与运行模式不同, 该特性修饰的类 是指在场景中的某个物体发生改变时 执行
发表于 2018-9-17 07:24 | 显示全部楼层
很不错
发表于 2018-9-17 07:32 | 显示全部楼层
楼主是超人
发表于 2018-9-17 07:24 | 显示全部楼层
顶顶多好
发表于 2018-9-17 07:58 | 显示全部楼层
难得一见的好帖
发表于 2018-9-17 07:53 | 显示全部楼层
不错不错
发表于 2019-5-1 07:52 | 显示全部楼层
好帖就是要顶
发表于 2019-5-1 07:33 | 显示全部楼层
真心顶
发表于 2019-5-1 07:47 | 显示全部楼层
难得一见的好帖
发表于 2019-5-1 08:00 | 显示全部楼层
很好哦
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-23 06:00 , Processed in 1.180518 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表