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;
}