Unity Attributes特性

本文深入解析Unity中的多种特性,包括AddComponentMenu、Obsolete、Conditional等,介绍它们如何提升开发效率及代码质量,适用于游戏开发人员及Unity爱好者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Unity中常用的特性

官网链接(https://docs.unity3d.com/ScriptReference/AddComponentMenu.html)

AddComponentMenu

规划自己的脚本,Unity里所有的脚本在界面Component的Scripts里可以找到,为避免开发者在Project里面去找,同时可以划分不同人猿之间写的代码,这个特性可以把在Script里面的脚本规划到自己的组别中,如图:
在这里插入图片描述
在这里插入图片描述

Obsolete

经常使用UnityAPI时发现有过时的方法,接口,就是这个特性给与的提示,示例:

在这里插入图片描述
在这里插入图片描述
这里有两个参数,第一个是提示的信息(你可以写这个方法的替代方法),第二个是报错类型,false代表警告类型呈现绿色的线,true表示代表错误类型,呈现红色的线

Conditional

这个特性用来代替条件编译# if,其执行依赖于指定的预处理标识符

#define DEBUG

public class Send
{
    [Conditional("DEBUG")]
    public static void Message(string msg)
    {
        Console.WriteLine(msg);
    }
}

ContextMenu

在某个方法上面注明,用于Unity 在还没有运行时单独测试某个方法
在这里插入图片描述
在这里插入图片描述
即使Unity在未在Run状态下,点击Execute就会单独执行这个方法。

RuntimeInitializeOnLoadMethodAttribute

在程序运行时会自动执行这个方法,类不用继承mono,方法是static的:
在这里插入图片描述在这里插入图片描述

SpaceAttribute

使用该属性可以在Inspector上增加一些空位
在这里插入图片描述
在这里插入图片描述

TextAreaAttribute

该属性可以把string在Inspector上的编辑区变成一个TextArea, 但只能对string关键字定义的属性使用
在这里插入图片描述
在这里插入图片描述

ContextMenuItemAttribute

在变量上面使用这个特性,Unity的Inspector界面当鼠标指针在这个变量上面时会出现一个菜单,可以执行一个方法,跟ContextMenu的区别是这个方法是在字段上面的,而ContextMenu是在方法上面的

在这里插入图片描述
在这里插入图片描述

HelpURLAttribute

在类上面添加这个特性,并且填上需要连接的网址
在这里插入图片描述
在这里插入图片描述

RequireComponent

需求组件,挂上这个脚本会自动添加需要的组件,这个还是会经常用到的

在这里插入图片描述
在这里插入图片描述

SerializeField和HideInInspector

序列化:将任何对象转变成底层数据,大致是任何对象(Object型)---->数据流---->二进制数据,但在Unity的里一个作用是可以在Unity的界面将数据展示出来,其中public类型是默认序列化的,如果想让private的数据展现出来,你可以用这个特性,如果你想序列化一个数据但又不想让数据在Inspector界面展现,你可以同时使用这两个特性,HideInInspector的作用就是隐藏你的数据,比如[HideInInspector]public int num;这个数据在界面是不可见的

其他

还有一些比较复杂的(AssemblyIsEditorAssembly),限定类(Range)的或者提示性质(TooltipAttribute之类的)的特性可以参考官方文档。
好吧,其实AssemblyIsEditorAssembly我是不知道怎么使用。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值