【unity】常用属性特征

news2025/1/12 1:56:39

编辑器功能


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;

效果

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

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

相关文章

OpenAI DALL·E 3文生图模型技术揭秘(建议收藏)

欢迎来到魔法宝库,传递AIGC的前沿知识,做有格调的分享❗ 喜欢的话记得点个关注吧! DALLE 3是OpenAI发布的一款文生成图AI系统,它无缝接入ChatGPT,通过接受文本提示作为输入,生成相应的图像作为输出。先来看…

【Linux】Linux常用命令—用户管理

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

Redis安装、配置

系列文章目录 第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Sprin…

【算法每日一练]-单调队列(保姆级教程 篇2)#琪露诺 #选数游戏 #寻找段落

最后一期单调队列了啊 目录 题目&#xff1a;琪露诺 思路&#xff1a; 题目&#xff1a;选数游戏 思路&#xff1a; 题目&#xff1a;寻找段落 思路&#xff1a; 之前做的都是连续的长度区间求最值&#xff0c;今天体验一下不连续的区间。 然后就是要注意维护单调队列时…

Flutter有状态组件StatefulWidget生命周期

StatefulWidget是Flutter中的一个有状态的组件&#xff0c;它的生命周期相对复杂一些。下面是StatefulWidget的生命周期方法及其调用顺序&#xff1a; 1. createState(): 当StatefulWidget被插入到Widget树中时&#xff0c;会调用createState()方法来创建与之关联的State对象。…

如何有效概括一段工作经历?

问题描述&#xff1a; 如何有效概括一段工作经历&#xff1f; 解决方案&#xff1a; 1.要有效概括一段工作经历&#xff0c;可以遵循以下几个步骤&#xff1a; 确定关键信息&#xff1a;仔细审查工作经历&#xff0c;确定其中的关键信息和亮点。这可能包括你的职位、工作职责…

VR建筑仿真场景编辑软件有助于激发创作者的灵感和创造力

随着VR虚拟现实技术的不断发展和普及&#xff0c;VR虚拟场景编辑器逐渐成为了VR场景开发重要工具。它对于丰富和完善VR虚拟现实内容的创建和呈现具有重要的意义&#xff0c;为我们的工作和教学带来了许多变化和可能性。 首先&#xff0c;VR虚拟场景编辑器对于提升用户体验具有重…

C++实现查找连通域

目录 一、概述 1.1、四连通域算法 1.2、八连通域算法 1.3、种子填充法 二、代码 一、概述 图像处理中&#xff0c;查找连通域的算法是图像分割的重要方法之一。它能够将一幅图像分成若干个不重叠的区域&#xff0c;每个区域内部像素具有相似的性质&#xff0c;而不同区域…

【游戏开发算法每日一记】使用随机prime算法生成错综复杂效果的迷宫(C#和C++)

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

【01】Istio-1.17 部署

1.1 部署Istio控制平面 部署方法 istioctl istio的专用管理工具&#xff0c;支持定制控制平面和数据平面通过命令行的选项支持完整的IstioOperator API命令行各选项可用于单独设置&#xff0c;以及接收包含IstioOperator自定义资源(CR)的yaml文件 Istio Operator Istio相关的自…

哪些东西可以用超声波清洗机洗?这四款超声波清洗机可别错过

自从去眼镜店老板用超声波清洗机给我清洗过眼镜之后&#xff0c;我就发现&#xff0c;其实很多智能家居都可以帮我们大大解决一些清洁上面的问题&#xff0c;不仅方便还很高效&#xff01;这种一举两得的事情不得安排上&#xff01;现在市面上超声波清洗机可以清洗的东西是越来…

【OpenCV(4)】使用opencv编写mp4格式和avi格式

在之前的文章《【摄影与图像】444&#xff0c;422&#xff0c;420&#xff0c;10bit&#xff0c;8bit&#xff0c;RGB,YCrCb,场序&#xff0c;h264编码,封装&#xff0c;码率&#xff0c;PR常用配置》 说到了视频&#xff1a; 1、一个视频里面包含了什么&#xff1f; 图像音频…

通过百度翻译API完成Java中的中英文翻译

因为要做英文文献索引分词&#xff0c;所以对于索引词汇必须得是英文&#xff0c;将表中的中文都转换成英文 这里用到百度的翻译API 首先需要注册成为百度翻译开发者&#xff1a;百度翻译开放平台 注册成为个人开发者就可以&#xff0c; 这里可以完善相关信息&#xff0c;要记…

关于C++链接的一些理解

无论是.h还是.cpp&#xff0c;都可以写声明或者实体&#xff0c;而且.h和.cpp的前面的名字相同不相同没有任何的影响 最终一系列要连接的程序中&#xff0c;必须有且只有一个源文件有main函数&#xff0c;然后从这个main函数开始运行 include的作用其实是跟define一样的&#x…

高效筛选的秘密武器:JVS智能BI的‘and’与‘or’逻辑

在这个信息爆炸的时代&#xff0c;数据被誉为新时代的黄金和石油&#xff0c;蕴含着无尽的价值和潜力。然而&#xff0c;随着数据的爆炸式增长&#xff0c;如何高效、准确地从海量数据中提取出真正有价值的信息&#xff0c;成为摆在我们面前的一大挑战。我们需要用数据筛选工具…

app软件开发多少钱?功能会影响价格吗?

随着智能手机的普及&#xff0c;app开发市场日益繁荣&#xff0c;很多人都有开发app的梦想&#xff0c;但开发一款app需要多少钱呢?功能是否会影响价格?本文将为你揭开这个谜团。 一、app开发费用的影响因素 app开发费用受到多种因素的影响&#xff0c;例如开发难度、功能复…

垂直领域对话系统架构

垂直领域对话系统是指针对特定领域或行业的需求而构建的对话系统。这种系统通常需要具备高度的专业知识和对特定领域的知识库进行深入的学习和训练&#xff0c;以便能够提供准确、高效、实用的服务。 垂直领域对话系统的构建通常包括以下步骤&#xff1a; 确定目标领域或行业…

OpenCV:图像噪点消除与滤波算法

人工智能的学习之路非常漫长&#xff0c;不少人因为学习路线不对或者学习内容不够专业而举步难行。不过别担心&#xff0c;我为大家整理了一份600多G的学习资源&#xff0c;基本上涵盖了人工智能学习的所有内容。点击下方链接,0元进群领取学习资源,让你的学习之路更加顺畅!记得…

飞天使-template模版相关知识

遇到报错django.template.exceptions.TemplateSyntaxError: ‘staticfiles’ is not a registered tag library. Must ROOT_URLCONF TEMPLATES [{BACKEND: django.template.backends.django.DjangoTemplates,DIRS: [os.path.join(BASE_DIR, templates)],APP_DIRS: True,OPTI…

css实现进度条

预期样式 方法一 <script setup> import { ref } from "vue"; // import ScreenLeft from "./ScreenLeft/index.vue"; const width ref("76.5%"); </script><template>Screen<div class"progress-contain">…