【unity】常用属性特征

编辑器功能


AddComponentMenu-添加组件菜单

将脚本添加到Unity编辑器的菜单中,方便开发者在编辑器中快速添加组件。

示例

using UnityEngine;
[AddComponentMenu("添加组件/FollowTransform")]
public class FollowTransform : MonoBehaviour
{
}

效果

可以在Unity编辑器中选择 Component -> 添加组件->FollowTransform,或者选中模型在Add Component -> 添加工具->跟随模型组件,来将PlayerController脚本添加到游戏对象上。


ColorUsageAttribute-颜色使用属性

对 Color 使用此属性可将 Color Field 和拾色器配置为显示/隐藏 alpha 值,以及将颜色处理为 HDR 颜色还是正常 LDR 颜色。

变量

HDR如果设置为 true,则将 Color 处理为 HDR 颜色。
showAlpha如果为 false,则 ColorField 中会隐藏 alpha 栏,并且拾色器中不显示 alpha 值。

示例

    [ColorUsage(true, true)]
    public Color colorWithAlphaHDR;

    [ColorUsageAttribute(false, false)]
    public Color colorNoAlphaHDR;

ContextMenu-添加脚本快捷菜单

在该附加脚本的 Inspector 中,当用户选择该快捷菜单时, 将执行此函数。

这对于从该脚本自动设置场景数据非常有用。 此函数必须是非静态的。

示例

using UnityEngine;

public class MyScript : MonoBehaviour
{
    [ContextMenu("Do Something")]
    private void DoSomething()
    {
         Debug.Log("执行操作");
    }
}

效果


ContextMenuItemAttribute-自定义属性快捷菜单

Inspector面板中为方法添加自定义菜单项的属性。通过在方法上使用ContextMenuItemAttribute,可以在Inspector面板中为该方法添加一个自定义菜单项,以便在编辑器中方便地调用该方法。

示例

using UnityEngine;
 
public class MyScript : MonoBehaviour
{
   [ContextMenuItem("myReset", "ResetPosition")]//必须添加在属性自动前
    public Vector3 position;

    private void ResetPosition()
    {
        position = Vector3.zero;
    }
}

效果

右击position属性字段,可以看见myReset选项,点击运行


ExecuteAlways-始终执行类

使脚本的实例在播放模式期间或编辑时始终执行。

示例

using UnityEngine;
[ExecuteAlways]
public class MyScript : MonoBehaviour
{
    private void Start()
    {
        Debug.Log("执行");
    }
}


ExecuteInEditMode-编辑模式执行

使脚本的所有实例都在编辑模式下执行。

示例

using UnityEngine;
[ExecuteInEditMode]
public class MyScript : MonoBehaviour
{
    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.K))
        {
            Debug.Log("执行");
        }
    }
}

GradientUsageAttribute-渐变色使用

在渐变上使用此属性来配置GradientField和Gradient Editor,以将颜色处理为HDR颜色或普通LDR颜色。

示例

   [GradientUsage(true)] // 使用HDR渐变
    public Gradient gradientField;
    private void Start()
    {
        Color color = gradientField.Evaluate(0.1f);
        Debug.Log(color);
    }

效果


HelpURLAttribute-自定义文档 URL

为类提供自定义文档 URL

示例

using UnityEngine;
using UnityEditor;

[HelpURL("http://example.com/docs/MyComponent.html")]
public class MyComponent
{
}

点击小问号打开链接


HideInInspector-不显示在 Inspector

使变量不显示在 Inspector 中,但进行序列化。

示例

  [HideInInspector]
  public  int p = 5;

MinAttribute-限定最小值

用于使脚本中的 float 或 int 变量受限于特定最小值的属性。

示例

  [Min(f)]
   public  int i;

输入活设定i小于f时,i都默认为f。


RequireComponent-自动添加组件

属性自动将所需的组件添加为依赖项。如果已经有该组件将不会再添加

示例

[RequireComponent(typeof(MeshFilter),typeof(MeshRenderer))]
public class MyScript : MonoBehaviour
{
    private void Start()
    {
       
    }
}

效果


SerializeField-显示私有字段

用于在私有字段上标记,以便在Inspector面板中显示和编辑私有字段的值。这样可以在不暴露私有字段的情况下,让开发者可以在Unity编辑器中修改这些字段的值。

[SerializeField]
private int myValue;


优化Inspector面板


HeaderAttribute-创建标题

用于自定义Inspector面板的属性。它可以用来在Inspector面板中创建一个标题,并将相关字段分组在一起,以便更好地组织和呈现数据。

示例

    [Header("设置")]
    public int health;
    public int damage;

    [Header("外观")]
    public Color color;
    public Material material;

效果


InspectorNameAttribute-显示自定义名称

对枚举值声明使用此属性可更改 Inspector 中显示的显示名称。

示例

public enum ColorEnum
{
    [InspectorName("红")]
    red,
    [InspectorName("黄")]
   yellow,
    [InspectorName("蓝")]
    blue
}
public class MyScript : MonoBehaviour
{
  public   ColorEnum colorEnum;
    private void Start()
    {
        Debug.Log(colorEnum);
    }
}

效果


MultilineAttribute-多行文本

用于通过多行文本字段编辑字符串的属性。

示例

    [MultilineAttribute(5)]//5为设定行数,不填默认为3行
    public string str;

效果


NonReorderableAttribute-禁用数组排序功能

在“检查器”窗口中禁用数组或列表的重新排序。

示例

    [NonReorderable]
    public int[] array;

RangeAttribute-范围设定

用于使脚本中的 float 或 int 变量受限于特定范围的属性。

示例

    [Range(1, 6)]
    public int integerRange;
    [Range(0.2f, 0.8f)]
    public float floatRange;

效果


SpaceAttribute-添加间距

可在 Inspector 中添加一些间距。

  public  int maxHealth = 100;

    [Space(100)] // 添加10像素的间距

   public int shield = 0;


TextAreaAttribute-文本编辑区域

用于通过高度灵活且可滚动的区域编辑字符串。

可以指定 TextArea 的最小行数和最大行数,该字段将根据文本的大小进行扩展。如果文本大于可用区域,则会显示滚动条。

示例

    [TextArea(3,5)]//最小行数3最大行数5
    public string str;

效果


TooltipAttribute-字段提示

为 Inspector 窗口中的字段指定工具提示。

示例

[Tooltip("值在0到100之间")]
public int health = 0;

效果

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

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

相关文章

Seaborn数据可视化综合应用Basemap和Seaborn在线闯关_头歌实践教学平台

Seaborn数据可视化综合应用Basemap和Seaborn 第1关 Seaborn第2关 Seaborn图形介绍第3关 Basemap 第1关 Seaborn 任务描述 本关任务:编写一个绘制每个月销售总额的折线图。 编程要求 本关的编程任务是补全右侧上部代码编辑区内的相应代码,根据输入文件路…

java语言开发B/S架构医院云HIS系统源码【springboot】

医院云HIS全称为基于云计算的医疗卫生信息系统( Cloud- Based Healthcare Information System),是运用云计算、大数据、物联网等新兴信息技术,按照现代医疗卫生管理要求,在一定区域范围内以数字化形式提供医疗卫生行业数据收集、存储、传递、…

基于若依的ruoyi-nbcio流程管理系统增加流程设计器支持自定义表单的选择与处理

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 因为之前不支持在流程设计器进行自定义业务表单的关联选择,所以这部分实现这个。 1、前端 对…

ZooKeeper+Kafka+ELK+Filebeat集群搭建实现大批量日志收集和展示

大致流程:将nginx 服务器(web-filebeat)的日志通过filebeat收集之后,存储到缓存服务器kafka,之后logstash到kafka服务器上取出相应日志,经过处理后写入到elasticsearch服务器并在kibana上展示。 一、集群环…

lora微调模版

lora微调模版 1、版一:使用peft包的lora微调(1)设置超参方式一:代码中设置(便于debug)方式二: .sh文件指定 (2)加载数据集I、对应的.jsonl或json文件, 原始格式为&#x…

Kafka简单汇总

Kafka的结构图 多个Parttion共同组成这个topic的所有消息。每个consumer都属于一个consumer group,每条消息只能被consumer group中的一个Consumer消费, 但可以被多个consumer group消费。即组间数据是共享的,组内数据是竞争的。二、消费模型…

PO设计模式详解(Python+selenium+unittest)

一、什么是PO设计模式(Page Object Model) 1、Page Object是一种设计模式,它主要体现在对界面交互细节的封装上,使测试用例更专注于业务的操作,从而提高测试用例的可维护性。 2、一般PO设计模式有三层 第一层&#…

【紫光同创国产FPGA教程】【PGC1/2KG第六章】密码锁实验例程

本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处 适用于板卡型号: 紫光同创PGC1/2KG开发平台(盘古1K/2K) 一:盘古1K/2K开发板(紫光同创PGC…

Git图形化界面GUI的使用SSH协议及idea集成Git

前言 图形化界面(GUI,Graphical User Interface)是一种用户与计算机程序或操作系统交互的方式,通过图形元素,如图标、按钮、窗口等,而不是通过命令行来完成操作。GUI的设计旨在让用户通过直观的图形界面进行…

MAC地址注册的原理和应用

MAC地址注册是指在网络设备中,将设备的物理地址(即MAC地址)与设备的IP地址进行关联和注册的过程。MAC地址是以太网卡硬件上的独特标识符,用于在局域网中标识网络设备。 MAC地址注册在网络管理中起到重要作用,它可以帮助…

vue3配置环境变量,小白简单易学

环境变量的意义就是防止我们更新打包的时候写错变量,合并代码这些一系列问题 首先看看效果 左边是本地测试环境,右边是打包后的生产环境,写这个环境变量的好处就是,你在本地开发的时候变量随便改,不会影响生产环境&am…

ChIP在植物领域中的应用

01 什么是ChIP? 染色质免疫共沉淀技术(Chromatin Immunoprecipitation assay,ChIP)是研究体内DNA与蛋白质相互作用的方法。其基本原理是在细胞生理状态下固定蛋白质-DNA复合物,将其随机打断为一定长度范围内的染色质小…

阿里云容器镜像服务的运维总结

一、背景 容器镜像服务,作为一个可选付费产品,主要作用是存储docker的镜像仓库,供k8s拉取到Pod节点里。 你可以自己搭建一个harbor镜像仓库,在公司的开发环境下,将image推送到仓库;然后在生产k8s从仓库拉取…

基于JAX-WS实现RESTful形式的web服务端点(endpoint)

RESTful形式的web服务使用XML/HTTP绑定,实现jakarta.xml.ws.Provider。 服务端的实现类用jakarta.xml.ws.WebServiceProvider和BindingType(valueHTTPBinding.HTTP_BINDING)注释。其中HTTPBinding.HTTP_BINDING表示使用XML/HTTP绑定。 例如: WebServic…

Cesium 点线面实体

1.点 const point viewer.entities.add({ id: point, position: Cesium.Cartesian3.fromDegrees(113, 30), point: { pixelSize: 20, //像素 color: Cesium.Color.DEEPPINK, outlineColor: Cesium.Color.fromCssColorString(#fff), outlineWidth: 2, // 像素 }, }); 2.图标标注…

10 # 手写 every 方法

every 使用 every() 方法测试一个数组内的所有元素是否都能通过指定函数的测试。它返回一个布尔值。 ele&#xff1a;表示数组中的每一个元素index&#xff1a;表示数据中元素的索引array&#xff1a;表示数组 <script>var arr [1, 3, 5, 7, 8];var result arr.ever…

EDA实验-----3-8译码器设计(QuartusII)

目录 一. 实验目的 二. 实验仪器 三. 实验原理及内容 1.实验原理 2.实验内容 四&#xff0e;实验步骤 五. 实验报告 六. 注意事项 七. 实验过程 1.创建Verilog文件&#xff0c;写代码 ​编辑 2.波形仿真 3.连接电路图 4.烧录操作 一. 实验目的 学会Verilog HDL的…

金融帝国实验室(Capitalism Lab)V10版本即将推出全新公司徽标(2023-11-13)

>〔在即将推出的V10版本中&#xff0c;我们将告别旧的公司徽标&#xff0c;采用全新光鲜亮丽、富有现代气息的设计&#xff0c;与金融帝国实验室&#xff08;Capitalism Lab&#xff09;的沉浸式体验完美互补&#xff01;〕 ————————————— >〔《公司详细信…

了解 SwiftUI 中 StoreKit 2 新功能

文章目录 前言配置项目构建支付功能总结 前言 StoreKit 为我们提供了通过应用程序获得收入的机会。它允许我们设置应用内购买和订阅的购买流程。StoreKit 2 引入了一种基于现代 Swift 的 API&#xff0c;用于构建类型安全的应用内购买。下面我们将开始关于 StoreKit 2 的系列文…

三、机器学习基础知识:Python常用机器学习库(中文文本分析相关库)

文章目录 1、Jieba库1.1 主要函数1.2 词性标注1.3 关键词提取 2、WordCloud库2.1 常见参数2.2 词云绘制 文本分析是指对文本的表示及其特征的提取&#xff0c;它把从文本中提取出来的特征词进行量化来表示文本信息&#xff0c;经常被应用到文本挖掘以及信息检索的过程当中。 1、…