Unity中的一些系统特性
Unity特性目录
UnityEngine中
ContextMenuItemAttribute 为字段添加鼠标右键点击事件
代码
public class ContextMenuItemAttributeTest : MonoBehaviour
{
//第一个参数是自定义在窗口右键点击后显示的名称
//第二个参数是要对字段点击右键绑定的方法名
[ContextMenuItem("Calculate","Calculation")]
public int mCount=0;
public void Calculation()
{
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
二维码