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上,如果它尚未存在。

三、结语

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

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

请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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

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

U盘无法打开?数据恢复与预防措施全解析

在日常生活和工作中,U盘已成为我们存储和传输数据的重要工具。然而,有时我们会遇到U盘无法打开的情况,这无疑给我们带来了诸多不便。本文将深入探讨U盘打不开的现象、原因及解决方案,并分享如何预防此类问题的发生。 一、U盘无法访…

Java实现对象存储的4种方式(本地对象存储、MINIO、阿里云OSS、FastDFS)

文章目录 Java实现对象存储的3中方式1、概述2、本地对象存储2.1 配置本地文件相关信息2.2 通用映射配置 ResourcesConfig2.3 文件上传业务 LocalSysFileServiceImpl2.4 上传接口2.5 演示 3、MINIO3.1 依赖3.2 配置3.3 配置连接信息3.4. MINIO文件上传业务3.5 文件上传下载接口3…

高性价比、超强功能的开源工单解决方案

在企业日常运营中,工单管理系统是不可或缺的工具。高效的工单管理不仅能提升工作效率,还能显著提高客户满意度。今天,我们为您推荐搭贝工单派单系统——一款超高性价比、功能齐全的开源工单管理系统。 🔍 为什么选择搭贝工单派单…

LangChain入门开发教程(一):Model I/O

官方文档:https://python.langchain.com/docs/get_started/introduction/ LangChain是一个能够利用大语言模型(LLM,Large Language Model)能力进行快速应用开发的框架: 高度抽象的组件,可以像搭积木一样&a…

【PB案例学习笔记】-13 徒手做个电子时钟

写在前面 这是PB案例学习笔记系列文章的第11篇,该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码,小凡都上传到了gite…

python基础-数据结构-leetcode刷题必看-queue---队列-python的底层构建

文章目录 队列双端队列 deque底层存储deque接口1. __init__(self, iterable: Iterable[_T], maxlen: int | None None) -> None2. append(self, __x: _T) -> None3. appendleft(self, __x: _T) -> None4. copy(self) -> Self5. count(self, __x: _T) -> int6. …

java项目启动报错

java项目启动报错:java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field ‘com.sun.tools.javac.tree.JCTree qualid’ 原因:编译和运行的版本不一样 点击idea文件 点击项目结构 把这两个版本…

软件架构设计属性之一:功能性属性浅析

引言 软件架构设计属性中的功能性属性是评估软件架构是否满足其预定功能需求的关键指标。功能性属性确保软件能够执行其设计中的任务,并提供所需的服务。以下是对软件架构设计中功能性属性的浅析: 一、定义 功能性属性是指软件系统所具备的功能特性&a…

解决Android studio 一直提示下载gradle-xxx-all.zip问题

今天用AndroidStdiod打开一个新工程的时候,发现项目一直卡在正在下载gradle-xxx-all.zip的任务上,网络出奇的慢,即使配了VPN也无济于事,于是按照以往经验:将gradle-xxx-all.zip下载到.gradle\gradle\wrapper\dists目录…

【ESP32之旅】ESP32 PlatformIO 固件单独烧录

背景 有时候使用PIO编写的代码需要发给客户去验证,相比较于发送源码直接发送bin文件,更加的安全而且高效。不用担心源码的泄漏,也不用帮客户配置PIO环境。 操作方法 1.编译 首先进行代码编译,如编译成功会在 .pio\build\airm2…

汽车电子学习【车载网络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; //扩展模式 #…

Django 做migrations时出错,解决方案

在做migrations的时候,偶尔会出现出错。 在已有数据的表中新增字段时,会弹出下面的信息 运行这个命令时 python manage.py makemigrationsTracking file by folder pattern: migrations It is impossible to add a non-nullable field ‘example’ to …

Linux---网络相关配置

文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 一台主机需要配置必要的网络信息,才可以连接到互联网,需要的配置网络信息包括IP,子网掩码,网关和DNS。 一.查看网络信息 查看IP信息可以通…

echarts高级应用

目录 一、显示相关 1.1、主题 1.1.1、内置主题 1.1.2、自定义主题 1.2、调色盘和颜色渐变 1.2.1、主题调色盘<全局调色盘<局部调色盘 1.2.2、线性渐变(linear)、径向渐变(radial) 1.3、直接样式和高亮样式 1.3.1、直接样式 1.3.2、高亮样式 1.4、图表自适应 …

软件架构设计属性之三:结构性属性浅析

文章目录 引言一、结构性属性的定义二、结构性属性的关键要素1. 组件化2. 模块化3. 层次化4. 接口定义5. 数据流6. 依赖管理 三、结构性属性的设计原则1. 高内聚低耦合2. 松耦合3. 清晰的接口4. 可维护性5. 可扩展性 四、结构性属性的实现策略1. 组件划分2. 模块化设计3. 接口设…

【AREngine BUG 解决方法】无法获取有效的相机图像尺寸

近期拿了一台 华为mate20 Pro的手机&#xff0c;在运行AR示例的过程中出现了黑屏。 问题排查 SDK版本&#xff1a;com.huawei.hms:arenginesdk:3.7.0.3 定位 经排查&#xff0c;发现(ARCamera对象的相机内参) getImageDimensions()返回的图像尺寸的width和height都为0。 这…

Kong api网关实战教程

1. kong介绍 Kong是一款基于OpenResty(NginxLua模块)编写的高可用、易扩展的&#xff0c;由Mashape公司开源的API Gateway项目。Kong是基于NGINX和Apache Cassandra或PostgresQL构建的&#xff0c;能据供易于使用的RSTTAP[来操作和配置API管理系统&#xff0c;所以它可以水平扩…

【上】王树森《小红书推荐系统公开课》- 课程笔记(推荐系统基础、召回、排序)

写在前面 本文为王树森老师《小红书推荐系统公开课》的课程笔记 课程来源&#xff1a;ShusenWang的个人空间-ShusenWang个人主页-哔哩哔哩视频 (bilibili.com)课程资料&#xff1a;GitHub - wangshusen/RecommenderSystem 由于篇幅较长&#xff0c;分为【上】【下】两篇文章…

【busybox记录】【shell指令】unlink

目录 内容来源&#xff1a; 【GUN】【unlink】指令介绍 【busybox】【unlink】指令介绍 【linux】【unlink】指令介绍 使用示例&#xff1a; 删除文件 - 默认 常用组合指令&#xff1a; 指令不常用/组合用法还需继续挖掘&#xff1a; 内容来源&#xff1a; GUN &#x…