一、Unity编辑器开发之MenuItem

举报
CoderZ1010 发表于 2022/09/25 04:24:50 2022/09/25
【摘要】 MenuItem自定义菜单栏属性,允许我们创建自己的编辑器菜单。 public MenuItem (string itemName);public MenuItem (string itemName, bool isValidateFunction);public MenuItem (string itemName, bool isV...

MenuItem自定义菜单栏属性,允许我们创建自己的编辑器菜单。


  
  1. public MenuItem (string itemName);
  2. public MenuItem (string itemName, bool isValidateFunction);
  3. public MenuItem (string itemName, bool isValidateFunction, int priority);

param1: itemName 表示菜单项的路径。

param2: isValidateFunction 默认为false,为 true时表明这是一个验证函数,它将在调用具有相同的itemName的菜单函数之前被调用。

param3: priortiy 表示菜单项的显示顺序,默认为1000,数值越小的越靠上显示,若相邻菜单间差距大于11则会被分割线进行分割。

具体如下所示:

1. public MenuItem (string itemName);


  
  1. [MenuItem("SK.Editor/Function1")]
  2. static void Function1()
  3. {
  4. Debug.Log("Function1 Invoke.");
  5. }

点击该菜单项后,控制台会输出字符串"Function Invoke."

2. public MenuItem (string ItemName, bool isValidateFunction);

当参数isValidateFunction为true时表明这是一个验证函数,当返回值为true时,该菜单项才可以进行选择,否则不可选择。


  
  1. [MenuItem("SK.Editor/Function1", false)]
  2. static void Function1()
  3. {
  4. Debug.Log("Function1 Invoke.");
  5. }
  6. [MenuItem("SK.Editor/Function1", true)]
  7. static bool Function1Validate()
  8. {
  9. return false;
  10. }

3.public MenuItem (string ItemName, bool isValidateFunction, int priority);


  
  1. [MenuItem("SK.Editor/Function1", false, 20)]
  2. static void Function1() {}
  3. [MenuItem("SK.Editor/Function2", false, 10)]
  4. static void Function2() {}
  5. [MenuItem("SK.Editor/Function3", false, 31)]
  6. 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,即可调用该菜单项:


  
  1. [MenuItem("SK.Editor/Function #E")]
  2. static void Function()
  3. {
  4. Debug.Log("Function1 Invoke.");
  5. }

除上述表格内容外,还可以使用下划线_加字母声明快捷键,例如_E表示使用单一的字母E调用菜单项。

文章来源: coderz.blog.csdn.net,作者:CoderZ1010,版权归原作者所有,如需转载,请联系作者。

原文链接:coderz.blog.csdn.net/article/details/114091905

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。