Unity中的一些系统特性

UnityEngine中

ContextMenuItemAttribute 为字段添加鼠标右键点击事件

代码

public class ContextMenuItemAttributeTest : MonoBehaviour
{
//第一个参数是自定义在窗口右键点击后显示的名称
//第二个参数是要对字段点击右键绑定的方法名
   [ContextMenuItem("Calculate","Calculation")]
    public int mCount=0;
    public void Calculation()
    {
       mCount+=1;
    }
}

结果
当点击鼠标右键时会出现要执行的方法mCount=1

RangeAttribute 范围特性

用于将脚本中的 float 或 int 变量限制在特定范围内的属性。
代码:

public class RangeAttributTest : MonoBehaviour
{
    [Range(1,10)]//RangAttribute Attribute省略
    public float mValues;
}

效果图

SpaceAttribute 控制Inspetor面板的间隔

public class SpaceAttributeTest : MonoBehaviour{
	
    public int mCount=1;
    public int mKey=2;
    [Space (20)]
	public string playerName = "Unnamed";
    [Space(10)]
    public string playPass="aaaaa";
}

效果图

HeaderAttribute 增加一个label描述

代码

public class HeaderAttributeTest : MonoBehaviour
{
    [Header("hp Settings")]
    public int mHp=0;
    [Header("exp set")]
    public float mExp=0;
}

效果图
效果图

MultilineAttribute 控制inspector面板上string显示的行数

代码

public class MultilineAttributeTest : MonoBehaviour
{
    //使用多行文本字段编辑字符串的属性
    [Multiline(1)]
    public string str="asd";
    [Multiline(3)]
    public string text;
}

效果图

SelectionBaseAttribute 控制有多个子物体的物体如何一次选中要选中的基础

只需要将selectionBase添加到类上部,然后将脚本添加到要控制选中的对象
案例

[SelectionBase]
public class SelectionBaseAttributeTest : MonoBehaviour{ }

在这里插入图片描述
在NullObject上添加SelectionBaseAttributeTest脚本就可以控制点击到capsule时会先选中NullObject物体(其中NullObject是GameObject),也就是会根据你设置的基础点击进行渗透到下一个

TextAreaAttribute 制作 可滚动的文本区域编辑字符串的属性。

脚本

public class TextAreaAttributeTest : MonoBehaviour
{
  [TextArea]
  public string mName;
  [TextArea(1,4)]
  public string mPassword;
}

效果图 如果文本大于可用区域,则会出现滚动条。

TooltipAttribute 为字段在Inspector面板添加点击出现描述功能

代码

public class ToolTipAttributeTest : MonoBehaviour
{
    [Tooltip("姓名")]
   public string mName;
   [Tooltip("密码")]
   public string mPs;
}

效果图
效果图

UnityEditor中的

InitializeOnLoadAttribute 允许在 Unity 加载时初始化编辑器类而无需用户操作。

案例

[InitializeOnLoad]
public class InitializeOnLoadAttributeTest 
{
    static InitializeOnLoadAttributeTest()
    {
       Show();
    }
    public static void Show()
    {
        Debug.Log("Show函数");
    }
}

效果在编辑器模式下会输出“Show函数”
官方案例

[InitializeOnLoad]
class MyClass
{
    static MyClass ()
    {
        EditorApplication.update += Update;
    }

    static void Update ()
    {
        Debug.Log("Updating");
    }
}

会一直输出"Updating"

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇

)">
下一篇>>