一、Unity编辑器开发之MenuItem

本文介绍了MenuItem自定义菜单栏属性,可用于创建编辑器菜单。说明了其参数itemName、isValidateFunction、priortiy的含义及作用,列举了不同参数组合的使用方式,还介绍了为菜单项添加快捷键的方法,如Shift+E和单一字母E等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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() {}

为菜单项添加快捷键:

StringKeys
​%Ctrl on Windows / Command On OSX
#Shift
&Alt
LEFT/RIGHT/UP/DOWNArrow keys
F1...F2F Keys
HOME,END,PGUP,PGDNHome,End,Page Up,Page Down

如下例,表示使用快捷键Shift+E,即可调用该菜单项:

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CoderZ1010

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值