Unity编辑器 MenuItem菜单-不同位置菜单生成详解

1.在顶部菜单 右键中添加菜单

	//在顶部菜单 右键中添加菜单
    //路径格式无限制,非特殊字段皆可以在顶部显示
    [MenuItem("Tools/测试1", false, 0)]
    public static void Menu_Top()
    {
        Debug.Log("测试1_Menu_Top");
    }

菜单效果:
在这里插入图片描述
执行结果:
在这里插入图片描述

2.在Project面板 右键中添加菜单

    //在Project面板 右键中添加菜单
    //Assets:此标记会标记右键菜单的根节点为 Hierarchy
    [MenuItem("Assets/测试2")]
    public static void Menu_Assets()
    {
        Debug.Log("测试2_Menu_Assets");
    }

菜单效果:
在这里插入图片描述
执行结果:
在这里插入图片描述

3.在Hierarchy面板 右键中添加菜单

    //在Hierarchy面板 右键中添加菜单
    //GameObject:此标记会标记右键菜单的根节点为 Hierarchy
    [MenuItem("GameObject/测试3", false, 0)]
    public static void Menu_Hierarchy()
    {
        Debug.Log("测试3_Menu_Hierarchy");
    }

菜单效果:
在这里插入图片描述
执行结果:
在这里插入图片描述

4.在Inspector面板 对应的组件中右键中添加菜单

    //在Inspector面板 对应的组件中右键中添加菜单
    //CONTEXT:指定 Inspector
    //MonoBehaviour:组件类型 如果希望右键菜单只生成到指定组件中 请替换为指定类型组件
    [MenuItem("CONTEXT/MonoBehaviour/测试4")]
    public static void Menu_Inspector(MenuCommand command)
    {
       
        //特殊获取说明:获取选中的组件
        Object selectComp = command.context;

          Debug.Log("测试4_Menu_Inspector--  选中组件:"+ selectComp);
    }

菜单效果:
在这里插入图片描述
执行结果:
在这里插入图片描述

5.菜单内容快捷键执行

    /*
    菜单内容快捷键执行,标记对应指令 

    | 快捷键                 |  指令
    | %              	     |  CTRL
    | #	                     |  Shift
    | &	                     |  Alt
    | LEFT/RIGHT/UP/DOWN	 |  箭头上下左右
    | F1-F12	             |  键盘快捷键F1-F12
    | HOME/END/PGUP/PDDN	 |  对应键盘的Home/End/PageUp/PageDown
     */
    //代码示例
    [MenuItem("Assets/快捷键  %Q")]
    public static void Menu_QJ()
    {
        Debug.Log("使用了快捷键执行成功");
    }

菜单效果:
在这里插入图片描述
执行结果:
在这里插入图片描述

附录:菜单获取选中的当前对象,常用方法举例

    [MenuItem("Tool/常用方法")]
    public static void Menu_Common()
    {
        //获取选中的对象
        GameObject selectItem = Selection.activeGameObject;

        //获取选中的对象列表
        GameObject[] selectItemS = Selection.gameObjects;

        //获取选中对象,此方法常用于获取非GameObject类型的对象,获取成功后需要自己转换为需要对象
        Object selectObjecy = Selection.activeObject;
        //转换示例
        TextAsset tex = selectObjecy as TextAsset;

        //获取选中对象,此方法常用于获取非GameObject类型的对象,获取成功后需要自己转换为需要对象
        Object[] selectObjecyS = Selection.objects;

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值