当前位置:   article > 正文

Unity中的一些系统特性_unity的特性

unity的特性

UnityEngine中

CreateAssetMenuAttribute 对ScriptableObject派生类进行标记

使其自动列在Assets/Create子菜单中,方便创建.asset的文件

[CreateAssetMenu(fileName ="Test",menuName ="test",order = 1)]
public class TestCreateAssetMenu : ScriptableObject
{ 
}
  • 1
  • 2
  • 3
  • 4

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

代码

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

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

RangeAttribute 范围特性

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

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

效果图

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";
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

效果图

HeaderAttribute 增加一个label描述

代码

public class HeaderAttributeTest : MonoBehaviour
{
    [Header("hp Settings")]
    public int mHp=0;
    [Header("exp set")]
    public float mExp=0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

效果图
效果图

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

代码

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

效果图

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

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

[SelectionBase]
public class SelectionBaseAttributeTest : MonoBehaviour{ }
  • 1
  • 2

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

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

脚本

public class TextAreaAttributeTest : MonoBehaviour
{
  [TextArea]
  public string mName;
  [TextArea(1,4)]
  public string mPassword;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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

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

代码

public class ToolTipAttributeTest : MonoBehaviour
{
    [Tooltip("姓名")]
   public string mName;
   [Tooltip("密码")]
   public string mPs;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

效果图
效果图

AddComponentMenu 在component菜单中某个位置添加当前脚本

using UnityEngine;
[AddComponentMenu("Custom/TestComponent")]
public class TestComponent:Monobehaviour
{
}
  • 1
  • 2
  • 3
  • 4
  • 5

UnityEditor中的

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

案例

[InitializeOnLoad]
public class InitializeOnLoadAttributeTest 
{
    static InitializeOnLoadAttributeTest()
    {
       Show();
    }
    public static void Show()
    {
        Debug.Log("Show函数");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

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

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

    static void Update ()
    {
        Debug.Log("Updating");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

会一直输出"Updating"

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/81891
推荐阅读
相关标签
  

闽ICP备14008679号