MenuItem自定义菜单栏属性,允许我们创建自己的编辑器菜单。
public MenuItem (string itemName);
public MenuItem (string itemName, bool isValidateFunction);
public MenuItem (string itemName, bool isValidateFunction, int priority);
param1: itemName 表示菜单项的路径。
param2: isValidateFunction 默认为false,为 true时表明这是一个验证函数,它将在调用具有相同的itemName的菜单函数之前被调用。
param3: priortiy 表示菜单项的显示顺序,默认为1000,数值越小的越靠上显示,若相邻菜单间差距大于11则会被分割线进行分割。
具体如下所示:
1. public MenuItem (string itemName);
[MenuItem("SK.Editor/Function1")]
static void Function1()
{
Debug.Log("Function1 Invoke.");
}
点击该菜单项后,控制台会输出字符串"Function Invoke."
2. public MenuItem (string ItemName, bool isValidateFunction);
当参数isValidateFunction为true时表明这是一个验证函数,当返回值为true时,该菜单项才可以进行选择,否则不可选择。
[MenuItem("SK.Editor/Function1", false)]
static void Function1()
{
Debug.Log("Function1 Invoke.");
}
[MenuItem("SK.Editor/Function1", true)]
static bool Function1Validate()
{
return false;
}
3.public MenuItem (string ItemName, bool isValidateFunction, int priority);
[MenuItem("SK.Editor/Function1", false, 20)]
static void Function1() {}
[MenuItem("SK.Editor/Function2", false, 10)]
static void Function2() {}
[MenuItem("SK.Editor/Function3", false, 31)]
static void Function3() {}
为菜单项添加快捷键:
String | Keys |
% | Ctrl on Windows / Command On OSX |
# | Shift |
& | Alt |
LEFT/RIGHT/UP/DOWN | Arrow keys |
F1...F2 | F Keys |
HOME,END,PGUP,PGDN | Home,End,Page Up,Page Down |
如下例,表示使用快捷键Shift+E,即可调用该菜单项:
[MenuItem("SK.Editor/Function #E")]
static void Function()
{
Debug.Log("Function1 Invoke.");
}
除上述表格内容外,还可以使用下划线_加字母声明快捷键,例如_E表示使用单一的字母E调用菜单项。