Unity Attribute基本特性:

(1)[Header()]---在Inspector面板中,为field字段添加头信息,增强描述。【string类型】

(2)[Space()]或者[Space(10)]----间隔距离,在Inspector中,可以设置元素与元素之间的间隔。【可以加数字】

(3)[Multiline()]或者[Multiline(4)]----在一个支持多行的文本区域内编辑string字符串,他和TextAreaAttribute不同,MultilineAttribute的TextArea没有滚动条。

(4)[TextArea()]或者[TextArea(10,4)]----可以在一个高自由度并且可滚动的文本区域里编辑string字符串,如果字符串比较长,比较适用。minLines:文本区域最小行数.maxLines:文本区域最大行数,超过最大行数,会出现滚动条。【值可以不填,自己调整相应的行数,形成滚轮状态】

(5)[Range(“XXX”)][float/int]---当在int或float上应用RangeAttribute特性时,在Inspector面板中,显示的将是一个slider滑动条,而不是默认的数值字段;(用于字段)

(6)[Tooltip()]---在Inspector面板中,为一个字段Field指定一个提示【Tooltip里面是string类型】;(用于字段)

(7)[ColorUsage(true,true)]第一个参数false表示不能调整Alpha透明度,true则是允许调整透明度   第二个参数为false是表示不能使用HDR,true则是允许使用HDR模式,使用在类内部

(8)[HideInInspector()]---让一个可被序列化的字段,不要显示在Inspector面板中,防止修改【即Public类型】;(用于字段)

(9)[SerializeField]----强制去序列化一个私有的字段,使私有字段也可以显示在Inspector窗口中。(用于字段)

(10)[System.NonSerialized]防止unity序列化public变量

(11)[FormerlySerializedAs(“所要保护的字段”)]-----(要使用重命名之前的名字)作用是在对某一个字段重命名时,会导致字段内的数据清空,所以使用这个FormerlySerializedAs()可以保证字段赋予的数据不会被重置,但是需要使用using UnityEngine.Serialization;引用

(12)[System.Serializable]------将一个类转化成可序列化即可见的类

(13)ExecuteInEditMode()----让MonoBehaviour脚本的所有实例,在编辑模式下可运行。这些函数的调用并不会像在PlayMode下那样:只有窗口在发生改变 ,接触新的事件,重绘后才会调用;---非常重要【可以在编辑模式执行】

(14)[AddComponentMenu()]----自定义添加组件【放在类之上】

(15)[DisallowMultipleComponent()]----禁止一个组件被重复的添加多次()

(16)[RequireComponent(tyeof())]---自动添加所要依赖的组件,如将一个Script做为一个GameObject的组件,而这个Script需要访问Rigidbody组件,通过应用该属性,可以自动的添加Rigidbody组件到当前的GameObject中,避免设置错误。【重新挂载后生效并且应用在类上不是字段或者方法上】;(用于字段)

(17)[DefaultExecutionOrder(100)]用于设置脚本的执行顺序来调整这些方法的执行

(18)[SelectionBase()]---作用在组合型物体身上,将脚本挂载在起父物体身上,可以方便点击找到组合型中父物体

(19)[CustomEditor(typeof(LookAtPoint))]可以针对LookAtPoint自定义InSpector窗口

(20)[ContextMenu(“TakeDamage”)]----向Inspector面板中脚本Script的上下文菜单(快捷,右键),添加一条指令,当选择该命令时,函数会执行。*只能用于非静态函数

(21)[System.Obsolete("表达信息")]--表示方法过时来通知相关提示信息

(22)ContextMenuItem-----在Inspector面板中,为字段field添加一个快捷的菜单。

    [Multiline]

   [ContextMenuItem("Reset", "ResetString")]

    public stringabc;

    public voidResetString()

    {

        abc ="";

}

(23)[UnityEditor.MenuItem(“Tool/Give

Sword/Do it”)]可以在Tool工具栏中调用静态函数,适合游戏开发

(24)[CreateAssetMenu]-----快速的创建ScriptableObject派生类的实例,并存储成以“.asset"结尾的文件,ScriptableObject的派生类可以存储为外部的文件,图形化编辑对象数据,一些静态的数据,动态的加载,ScriptableObject是一种解决方案

fileName:生成asset文件的文件名。menuName:在Assets/Create上子菜单的名字。Order:是按钮显示的顺序,需要继承ScriptableObject,

例如[CreateAssetMenu(fileName="Bullect",menuName ="New Bullect",order =0)]

(21)[OnOpenAsset()]-----用于在Unity中打开资产的回调属性将这个属性添加到静态方法中将使Unity即将打开资产时调用该方法。该方法应具有以下签名之一:需要调用【using UnityEditor;using

UnityEditor.Callbacks;static bool

OnOpenAsset(int instanceID, int line)static bool OnOpenAsset(int

instanceID, int line, int column)如果您处理了资产的开放,则返回true;如果外部工具应将其打开,则返回false。

例如:

[OnOpenAssetAttribute(1)]

    public staticbool step1(int instanceID, int line)

    {

        string name= EditorUtility.InstanceIDToObject(instanceID).name;

       Debug.Log("Open Asset step: 1 (" + name + ")");

        returnfalse; //我们没有处理公开

    }

    // step2具有索引为2的属性,因此将在step1之后调用

//OnOpenAsset是执行顺序

//获取instanceID需要在Inspector右上角选择debug

   [OnOpenAssetAttribute(2)]

    public staticbool step2(int instanceID, int line)

    {

       Debug.Log("Open Asset step: 2 (" + instanceID +")");

        returnfalse; // we did not handle the open

    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352