【unity】常用属性特征

编辑器功能


AddComponentMenu-添加组件菜单

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

示例

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

效果

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

【unity】常用属性特征_第1张图片

【unity】常用属性特征_第2张图片


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("执行操作");
    }
}

效果

【unity】常用属性特征_第3张图片


ContextMenuItemAttribute-自定义属性快捷菜单

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

示例

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

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

效果

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

【unity】常用属性特征_第4张图片


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);
    }

效果

【unity】常用属性特征_第5张图片


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()
    {
       
    }
}

效果

【unity】常用属性特征_第6张图片


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;

效果

【unity】常用属性特征_第7张图片


InspectorNameAttribute-显示自定义名称

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

示例

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

效果

【unity】常用属性特征_第8张图片


MultilineAttribute-多行文本

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

示例

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

效果

【unity】常用属性特征_第9张图片


NonReorderableAttribute-禁用数组排序功能

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

示例

    [NonReorderable]
    public int[] array;

RangeAttribute-范围设定

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

示例

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

效果

【unity】常用属性特征_第10张图片


SpaceAttribute-添加间距

可在 Inspector 中添加一些间距。

  public  int maxHealth = 100;

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

   public int shield = 0;

【unity】常用属性特征_第11张图片


TextAreaAttribute-文本编辑区域

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

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

示例

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

效果

【unity】常用属性特征_第12张图片


TooltipAttribute-字段提示

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

示例

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

效果

【unity】常用属性特征_第13张图片

你可能感兴趣的:(Unity,unity,游戏引擎)