600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 「Unity3D」(9)自定义编辑器菜单扩展总结

「Unity3D」(9)自定义编辑器菜单扩展总结

时间:2019-01-01 07:20:05

相关推荐

「Unity3D」(9)自定义编辑器菜单扩展总结

添加菜单

[MenuItem("Tools/MyOption")]private static void MyOption(){// 自定义菜单Tools}

[MenuItem("Tools/Sub/MyOption")]private static void MyOption(){// 子菜单}

[MenuItem("Window/AAAOption")]private static void MyOption(){// 添加系统菜单(Window)的菜单项}

添加菜单项的快捷键

% 代表 Ctrl 或 CMD# 代表 Shift& 代表 AltLEFT/RIGHT/UP/DOWN 代表方向键F1 … F2 代表功能键HOME, END, PGUP, PGDN 代表对应按键_[a-z] 代表A-Z字符

以上每项快捷键可以组合使用,字符单独使用需要‘_’前缀,组合使用不需要‘_’前缀。快捷键冲突不会有提示,只会有一个被启用。

[MenuItem("Tools/Option1 %#a")]private static void MyOption1(){// CTRL + SHIFT + A}[MenuItem("Tools/Option2 %g")]private static void MyOption2(){// CTRL + G}[MenuItem("Tools/Option3 _g")]private static void MyOption3(){// G}

添加右键上下文菜单,使用内置指定路径

Assets/ 工程视图右键菜单Assets/Create/ 工程视图右键Create菜单CONTEXT/ComponentName/ 属性面板对应组件的右键菜单

[MenuItem("Assets/MyAssetControl")]private static void MyAssetControl(){}

[MenuItem("Assets/Create/MyAssetControl")]private static void MyAssetControl(){}

[MenuItem("CONTEXT/Rigidbody2D/MyOption")]private static void MyOption(){}

菜单禁用控制

[MenuItem("Tools/Option1")]private static void Option1(){}[MenuItem("Tools/Option1", true)]private static bool CheckOption1(){// 路径相同,返回可用性return false;}

菜单项的排序与分组

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

属性面板组件的右键菜单,获取当前组件

[MenuItem("CONTEXT/Rigidbody2D/MyOption")]private static void MyOption(MenuCommand menuCommand){// 获得当前组件对象var body2D = menuCommand.context as Rigidbody2D;}

自定义组件右键菜单

需要继承MonoBehaviour不能是static的方法

[ContextMenu("MyMenu")]private void MyMenu(){}

自定义组件属性的右键菜单

[ContextMenuItem("Set Name", "SetName")]public string myName;private void SetName(){}

自定义组件加入组件菜单

[AddComponentMenu("MyComponent/Enemy")]public class Enemy : MonoBehaviour{}

「扩展很简单」

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。