前言
自定义编辑器菜单扩展。
正文
添加菜单
1 2 3 4 5
| [MenuItem("Tools/MyOption")] private static void MyOption() { }
|
1 2 3 4 5
| [MenuItem("Tools/Sub/MyOption")] private static void MyOption() { }
|
添加系统菜单(Window)的菜单项
1 2 3 4 5
| [MenuItem("Window/AAAOption")] private static void MyOption() { }
|
添加菜单项的快捷键
% 代表 Ctrl 或 CMD
# 代表 Shift
& 代表 Alt
LEFT/RIGHT/UP/DOWN 代表方向键
F1 … F2 代表功能键
HOME, END, PGUP, PGDN 代表对应按键
_[a-z] 代表A-Z字符
以上每项快捷键可以组合使用,字符单独使用需要‘_’前缀,组合使用不需要‘_’前缀。快捷键冲突不会有提示,只会有一个被启用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| [MenuItem("Tools/Option1 %#a")] private static void MyOption1() { }
[MenuItem("Tools/Option2 %g")] private static void MyOption2() { }
[MenuItem("Tools/Option3 _g")] private static void MyOption3() { }
|
添加右键上下文菜单,使用内置指定路径
Assets/ 工程视图右键菜单
Assets/Create/ 工程视图右键Create菜单
CONTEXT/ComponentName/ 属性面板对应组件的右键菜单
1 2 3 4 5
| [MenuItem("Assets/MyAssetControl")] private static void MyAssetControl() {
}
|
1 2 3 4 5
| [MenuItem("Assets/Create/MyAssetControl")] private static void MyAssetControl() {
}
|
1 2 3 4 5
| [MenuItem("CONTEXT/Rigidbody2D/MyOption")] private static void MyOption() {
}
|
菜单禁用控制
1 2 3 4 5 6 7 8 9 10 11 12 13
| [MenuItem("Tools/Option1")] private static void Option1() {
}
[MenuItem("Tools/Option1", true)] private static bool CheckOption1() { return false; }
|
菜单项的排序与分组
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| [MenuItem("Tools/Option1", false, 2)] private static void Option1() { }
[MenuItem("Tools/Option2", false, 1)] private static void Option2() { }
[MenuItem("Tools/Option3", false, 21)] private static void Option3() { }
|
属性面板组件的右键菜单,获取当前组件
1 2 3 4 5 6
| [MenuItem("CONTEXT/Rigidbody2D/MyOption")] private static void MyOption(MenuCommand menuCommand) { var body2D = menuCommand.context as Rigidbody2D; }
|
自定义组件右键菜单
需要继承MonoBehaviour
不能是static的方法
1 2 3 4
| [ContextMenu("MyMenu")] private void MyMenu() { }
|
自定义组件属性的右键菜单
1 2 3 4 5 6
| [ContextMenuItem("Set Name", "SetName")] public string myName;
private void SetName() { }
|
自定义组件加入组件菜单
1 2 3 4
| [AddComponentMenu("MyComponent/Enemy")] public class Enemy : MonoBehaviour { }
|
来源:自定义编辑器菜单扩展总结
to be continued…