MenuItem的使用
一、参数介绍
MenuItem是一个特性,修饰静态方法,可以在Unity顶部菜单出现相应的按钮。
MenuItem有三个参数,分别如下:
1:路径: string 类型。用 ‘/’ 来分割路径
2:是否是验证函数:bool 类型,默认为false
3:函数优先级:影响在面板上的出现顺序,默认为1000
举例
[MenuItem("Learn/Log1",false,1000)]
public static void Log1()
{
Debug.Log("1");
}
效果如下
二、验证函数
MenuItem的第2个参数是一个bool值,用于验证这个函数是否启用。究竟怎么使用呢,看下面的例子就明白了。
[MenuItem("Learn/Log2",false,1001)]
public static void Log2()
{
Debug.Log("2");
}
[MenuItem("Learn/Log2",true,1001)]
public static bool ValidateLog2()
{
return Selection.activeTransform != null;
}
解释:这里第2个方法是对第1个方法的验证, 如果有选中一个transform,那么返回true;否则返回false。它的返回值,决定了跟它同路径的第一个方法是否可点击。
如图:
什么都不选中(注意看右侧的Hierarchy面板),不可点击
有选中一个物体,可以点击
注意:一个方法和它的验证方法的第一个参数,也就是路径,必须是一样的,这样两个方法才会关联起来。并且验证方法的第2个参数填true,返回值为bool类型。
三、优先级
第3个参数:优先级,主要影响菜单出现的先后顺序,不填默认是1000. 值越小,出现在越上层的位置。
[MenuItem("Learn/Log",false)]
public static void Log()
{
}
[MenuItem("Learn/Log1",false,999)]
public