一、Unity编辑器开发之MenuItem
2023-09-27 14:19:52 时间
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调用菜单项。
相关文章
- CVE-2018-0798:Microsoft office 公式编辑器 Matrix record 字段栈溢出漏洞调试分析
- FCKeditor编辑器漏洞
- 4. 在Inspector面板中显示类中变量+ 拓展编辑器
- 新版 CSDN Markdown 编辑器上线公告(Alpha 2.0)
- 用户调查—编辑器、代码片阅读体验—为了更好的博客编辑与阅读体验!
- Markdown编辑器的使用
- 《Visual Studio程序员箴言》---- 第2章 让编辑器的使用得心应手 2.1 高级编辑
- 基于QT(C++)实现(图形界面)文档编辑器【100010268】
- Python 开发的 IDE 和代码编辑器,你选择的哪一个?
- braft-editor编辑器的使用
- Unity框架学习_编辑器自动生成UI代码_减少重复工作量,高效开发
- 高亮显示代码编辑器控件【转】
- Unity编辑器开发(五):实战、开发一个AB包编辑器工具
- Unity 之 实用技巧更换编辑器主题
- Lua For Unity 你使用什么编辑器做开发 ???
- LINUX VIM编辑器
- 【Unity】使用AssetDatabase编辑器资源管理