unity中的常用属性修饰符

unity中的常用属性修饰符

  • 一、前言
  • 二、常用修饰符
  • 三、结语

一、前言

在做unity开发编辑脚本的时候经常会用到属性修饰符,使开发调试更加便捷。初学者见过最多的莫过于[Header("标题文本")]了吧,除此之外其实还有很多,这篇文章列举说明一些开发常用属性修饰符。

请添加图片描述

二、常用修饰符

在Unity中,属性修饰符可以用于控制序列化行为、编辑器显示和其他功能。以下是一些常用的Unity属性修饰符及其含义:

  1. [HideInInspector]
    此属性修饰符可以隐藏一个字段或属性,使其在Inspector窗口中不可见。
    在这里插入图片描述

  2. [Range(min, max)]
    限制一个数值字段或属性的可接受值范围。在Inspector中,这个字段会显示为一个滑动条或输入字段,限制在指定的最小值和最大值之间。
    在这里插入图片描述

  3. [Tooltip("提示文本")]
    为Inspector中的字段或属性添加工具提示。当用户将鼠标悬停在字段上时,会显示提示文本。
    在这里插入图片描述

  4. [Multiline(n)]
    将字符串字段或属性在Inspector中显示为多行文本区域。可以指定行数,例如[Multiline(3)]将显示一个3行的文本区域。
    在这里插入图片描述

  5. [ SerializeField ]
    使私有或受保护的字段在Inspector中可见和可序列化。
    在这里插入图片描述

  6. [Header("标题文本")]
    在Inspector中添加一个标题,用于分隔和组织字段。
    在这里插入图片描述

  7. [Space]
    在Inspector中添加一些空间,用于分隔字段,也可以[Space(50)]分隔的更远。
    在这里插入图片描述

  8. [ContextMenuItem("菜单项文本", "方法名")]
    在Inspector中的字段旁边添加一个上下文菜单项,当点击时,会调用指定方法。
    在这里插入图片描述

  9. [TextArea(3, 10)]
    [Multiline]类似,但它还允许指定文本区域的最小和最大行数。超过最大行数,会出现滚动条,但[Multiline]不会出现。
    在这里插入图片描述

  10. [HelpURL("URL")]
    为脚本添加一个帮助链接,点击时会在浏览器中打开指定的URL。
    这些属性修饰符可以在Unity编辑器中提供更好的用户体验,并帮助组织和管理脚本中的数据。
    只修饰类,一般会默认跳转手册文档
    在这里插入图片描述

  11. [ContextMenu ("名称")]
    在Inspector面板中脚本Script的上下文菜单中添加一条指令,当点击该指令时,执行对应函数。需要注意的是修饰符只能用于非静态函数。
    在这里插入图片描述

  12. [CreateAssetMenu(fileName = "xxxx",menuName = "xxx/xxx")]
    参数说明:fileName:生成asset文件的文件名;menuName:在Assets/Create上子菜单的名字。

    这个修饰符可以通过编辑器创建自定义资产。通常用于那些继承自ScriptableObject的类,它可以让开发者轻松地创建和管理配置文件、数据容器或其他可序列化的资源。
    在这里插入图片描述

  13. [ColorUsage(bool, bool, float, float, float, float)]
    在Unity中,[ColorUsage]属性用于指定一个Color类型的字段如何在编辑器中显示和编辑。这个属性允许你限制颜色的编辑范围,例如,可以指定最小的亮度、饱和度或者Alpha值。这对于那些需要特定颜色范围的应用场景非常有用,比如光照颜色、材质颜色等。
    在这里插入图片描述
    第一个参数true表示是否允许HDR(高动态范围)颜色。
    第二个参数true表示是否允许颜色选择器显示Alpha通道。
    第三个参数0f是颜色的最小亮度值。
    第四个参数8f是颜色的最大亮度值。
    第五个参数0.1f是颜色的最小饱和度值。
    第六个参数3f是颜色的最大饱和度值。

  14. [AddComponentMenu("xxx/xxx")]
    该属性是一个用于自定义脚本的特性,它允许你为脚本定义一个自定义的菜单路径,以便在编辑器中通过Add Component菜单添加该组件时能够找到它。这个特性对于组织复杂的工程或者为非程序员用户提供易于理解的组件非常有用。
    在这里插入图片描述

  15. [DisallowMultipleComponent]
    防止在同一GameObject上添加同一组件的多个实例。
    在这里插入图片描述


下面是一些不是很常见的,但是也要了解知道。

  1. [Delayed]
    当应用于属性时,延迟更新属性值,直到用户完成输入。这通常用于那些需要用户输入但不需要即时反映的场合,比如在Inspector中输入一个值后,不需要立即看到结果,而是等到用户完成所有输入后再更新。

    在这里插入图片描述
    比如在这段脚本中,health字段在Inspector中会有一个延迟更新的行为。当你开始在Inspector中编辑health的值时,Unity不会立即应用这个新值,而是等到你完成输入(比如按下回车键或点击其他字段)后才会更新。

    这个特性对于防止在用户输入过程中频繁触发的事件或计算非常有用。例如,如果你有一个复杂的计算依赖于health的值,你不想在用户每输入一个数字时就执行这个计算,而是等到用户输入完整个数值后再执行。

  2. [ExecuteInEditMode]
    允许脚本在编辑模式下运行,而不仅仅是播放模式。

  3. [FormerlySerializedAs("旧字段名")]
    当字段名称更改时,用于保持序列化数据的兼容性。

  4. [PropertyDrawer(typeof(MyPropertyDrawer))]
    自定义字段在Inspector中的显示方式,通过指定一个实现了PropertyDrawer类的类型。

  5. [RequireComponent(typeof(ComponentType))]
    自动将指定的组件添加到GameObject上,如果它尚未存在。

三、结语

虽然上面列举了不少属性修饰符,但是还有许多修饰符,只不过我们在开发的时候很少用到。我记得有个老师在教我的时候说过这样一句话:没有哪个程序员可以全部背会记住文档,只要能够找到会用就行,不要求全部背会记住。 是啊,文档手册里的东西千千万,怎么可能把全部的东西信手拈来,熟练使用查找手册也是一种能力。

今天的文章内容到此结束,下期见,拜拜!

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/661817.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CI/CD(基于ESP-IDF)

主要参考资料 B站乐鑫信息科技《【乐鑫全球开发者大会】DevCon23 #15 |通过 CI/CD 进行流水线开发》 pytest-embedded乐鑫文档: https://docs.espressif.com/projects/pytest-embedded/en/latest/api.html 目录 CI/CD简介乐鑫内部CI/CD测试GitLab CI/CDGitHub Actio…

电子阅览室解决方案

一.方案概述 “电子阅览室”概念一经提出,就得到了广泛的关注,纷纷组织力量进行探讨、研究和开发,进行各种模型的试验。随着数字地球概念、技术、应用领域的发展,电子阅览室已成为数字地球家庭的成员,为信息高速公路提…

奥利奥罚单背后的启示:企业合规与反垄断的边界

在全球化的经济环境中,企业面临着激烈的市场竞争。为了在竞争中脱颖而出,一些企业可能会采取不正当的竞争手段,如垄断、价格歧视等。然而,这些行为往往会触犯反垄断法规,给企业带来严重的法律风险。最近,奥…

Activity详解,用最通俗的语言告诉你什么是Activity(一)

大家好,我是小布丁。 今天还是分享Android基础知识,有Android基础的朋友都知道,Activity作为Android四大组件之一,掌管可视化界面。也是大多数人刚接触Android学的第一课。下面我来带大家学习/复习这部分知识,请大家不…

海尔智家牵手罗兰-加洛斯,看全球创牌再升级

晚春的巴黎西郊,古典建筑群与七叶树林荫交相掩映,坐落于此的罗兰加洛斯球场内座无虚席。 来自全球各地的数万观众,正与场外街道上的驻足者们一起,等待着全世界最美好的网球声响起…… 当地时间5月26日,全球四大职业网…

大数据技术分享 | Kylin入门系列:基础介绍篇

Kylin入门教程 在大数据时代,如何高效地处理和分析海量数据成为了企业面临的挑战之一。Apache Kylin作为一个开源的分布式分析引擎,提供了Hadoop之上的SQL查询接口及多维分析(OLAP)能力,使得对超大规模数据集的分析变…

数据结构——二叉树的实现

文章目录 一、二叉树概念的回顾二、二叉树结构的定义三、二叉树的创建方法一、写个创建结点的函数然后手动链接起来创建结点的函数手动链接 方法二、通过前序遍历的数组的方式构建二叉树创建的函数声明创建函数的定义 四、 二叉树的遍历前序遍历中序遍历后序遍历层序遍历 五、二…

基于python实现生命游戏

文章目录 一、生命游戏是什么二、生命游戏规则解释1.相邻细胞2.细胞状态 三、代码实现1.邻居细胞2.更新状态 四、整体代码 一、生命游戏是什么 生命游戏(Game of Life)是由英国数学家约翰何顿康威在1970年发明的一种细胞自动机(Cellular Aut…

SOL 交易机器人基本知识

有没有可以盈利的机器人? 是的,各行各业都有许多盈利机器人。在金融领域,交易机器人被广泛用于自动化投资策略并根据预定义的算法执行交易。这些机器人可以分析市场趋势并做出快速决策,从而可能带来可观的回报。同样,在…

JAVA:多线程常见的面试题和答案

请关注微信公众号:拾荒的小海螺 博客地址:http://lsk-ww.cn/ 1、并发编程三要素? 原 子 性 原子性指的是一个或者多个操作,要么全部执行并且在执行的过程中不被其他操作打断,要么就全部都不执行。可 见 性 可见性指多…

智能仓储物流系统(WMS)系列-货品与分类管理

好的应用系统应是细分简单,界面简洁易操作,程序代码简洁易懂的。

【傻呱呱】python安装phook3(Windows端)

前期准备 swig程序Visual Studio C 构建工具 配置swig程序 将下载好的“swig-4.2.1”压缩包解压到C盘从C盘打开“swig-4.2.1”文件夹并复制文件夹路径 在开始菜单里搜索“环境变量”,点击“编辑系统环境变量” 点击“环境变量” 找到“path”并双击 点击“新建” …

MFC工控项目实例一主菜单制作

1、本项目用在WIN10下安装的vc6.0兼容版实现。创建项目名为SEAL_PRESSURE的MFC对话框。在项目res文件下添加相关256色ico格式图片。 2、项目名称:密封压力试验机 主菜单名称: 系统参数 SYS_DATA 系统测试 SYS_TEST 选择型号 TYP_CHOICE 开始试验 TES_STA…

汽车电子学习【车载网络CAN/LIN】

车载网络CAN/LIN知识总结 STM32F1开发板测试 STM32测试程序 /** CAN 通信报文内容设置*/ void CAN_SetMsg(void) { #if CAN_STDTxMessage.StdId 0x12;TxMessage.IDE CAN_ID_STD; #elseTxMessage.ExtId 0x1314; //使用的扩展IDTxMessage.IDE CAN_ID_EXT; //扩展模式 #…

MySQL注入 — Dns 注入

DNS注入原理 通过子查询,将内容拼接到域名内,让load_file()去访问共享文件,访问的域名被记录此时变为显错注入,将盲注变显错注入,读取远程共享文件,通过拼接出函数做查询,拼接到域名中,访问时将访问服务器,…

AI大模型日报#0529:杨红霞创业入局“端侧模型”、Ilya左膀右臂被Claude团队挖走

导读:AI大模型日报,爬虫LLM自动生成,一文览尽每日AI大模型要点资讯!目前采用“文心一言”(ERNIE 4.0)、“零一万物”(Yi-34B)生成了今日要点以及每条资讯的摘要。欢迎阅读&#xff0…

计算机毕业设计 | SpringBoot+vue仓库管理系统(附源码)

1,绪论 1.1 项目背景 随着电子计算机技术和信息网络技术的发明和应用,使着人类社会从工业经济时代向知识经济时代发展。在这个知识经济时代里,仓库管理系统将会成为企业生产以及运作不可缺少的管理工具。这个仓库管理系统是由:一…

美团拼好饭小程序mtgsig1.2分析(补环境分析)

声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!wx a15018601872 本文章未…

AUS GLOBAL 荣获 Brokersview 颁奖盛典多项殊荣

2024年1月31日在迪拜 Sheikh Zayed Rd - Trade Centre - Trade Centre 1 举行的 Brokersview 颁奖盛典上,AUS GLOBAL(澳洲环球)再次展现了其在金融行业的卓越实力,并荣获多项殊荣。 AUS GLOBAL 作为一家全球领先的金融服务提供商…

【Linux进程篇】Linux进程管理——进程创建与终止

W...Y的主页 😊 代码仓库分享💕 目录 进程创建 fork函数初识 写时拷贝 fork常规用法 fork调用失败的原因 进程终止 进程退出场景 _exit函数 exit函数 return退出 进程创建 fork函数初识 在linux中fork函数时非常重要的函数,它从已…