一、自定义菜单
TIPS:
在开发Unity编辑器的时候,我们不想在打包时将编辑器源码也一并打包出去,因此Unity为我们提供了一个Editor文件夹存放不会被打包的编辑器资源
使用:在Assets中手动创建一个Editor文件夹
知识点1:菜单栏添加自定义标签

命名空间:UnityEditor
特性:MenuItem
用法:[MenuItem("页签/一级选项/二级选项/....")]
实例:
using UnityEngine; using UnityEditor; public class MyCustomMenu : MonoBehaviour { [MenuItem("MyExtension/SecondaryMenu/SayHello")] private static void SayHello() { Debug.Log("hello world!"); } }
可以发现利用这个特性,我们可以快速创建菜单,二级菜单,内容项
知识点2:在GameObject窗口中添加自定义页签

命名空间:UnityEditor
特性:MenuItem
用法:[MenuItem("GameObject/页签/一级选项/二级选项/....")]
实例:
[MenuItem("GameObject/CreateMyObject/create pig")] private static void MyObject() { Debug.Log("i am pinkPig"); }
可以发现在菜单栏的GameObject中会出现create pig
Hierarchy内右键也会出现
知识点3:在Project窗口中添加自定义页签
命名空间:UnityEditor
特性:MenuItem
用法:[MenuItem("Assets/页签/一级选项/二级选项/....")]
实例:

[MenuItem("Assets/EditorExtension/AI-GeneratingScripts")] private static void AIGS() { Debug.Log("Completed!"); }
只需要更改特性的参数目录为Assets
知识点4:为Component添加脚本选项

命名空间:UnityEngine
特性:AddComponentMenu
用法:[AddComponentMenu("一级选项/二级选项/....")]
注意:特性需要挂在脚本上,并且这个脚本是需要被打包出去的,所以要放在Editor文件夹外面才能被识别到
实例:
using UnityEngine; [AddComponentMenu("MyCustomComponents/TemplateScript")] public class TemplateScript : MonoBehaviour { public float moveSpeed; public float turnSpeed; public float hp; public float atk; }
点击后可快速创建一个角色脚本
知识点5:为Inspector为脚本右键添加菜单

命名空间:UnityEditor
特性:MenuItem
用法:[MenuItem("CONTEXT/脚本名/页签/一级选项/二级选项/....")]
实例:
[MenuItem("CONTEXT/Transform/MoreFunc/testFunc")] private static void Func1() { Debug.Log("Func1"); }
可以为任意的脚本或者组件添加快捷按钮
二、为自定义菜单绑定快捷键
单键
路径后 + 空格 + 下划线 + 想要的按键
例如:[MenuItem("Unity编辑器拓展/Lesson1/TestFun _A")]
组合键
下划线 可替换为
% 表示ctrl
# 表示shift
& 表示alt

实例:
[MenuItem("Unity编辑器拓展/Lesson1/TestFun %#&A")] private static void TestFun() { Debug.Log("TestFun"); }
其他支持的按键
LEFT、RIGHT:持类似#LEFT是左shift之类的按键
UP、DOWN、F1..F12、HOME、END、PGUP、PGDN
总结
MenuItem特性:
[MenuItem("页签/一级选项/二级选项/....")]
创建菜单栏拓展页签[MenuItem("GameObject/页签/一级选项/二级选项/....")]
创建GameObject/Hierarchy页签[MenuItem("Assets/页签/一级选项/二级选项/....")]
创建Project页签[MenuItem("CONTEXT/脚本名/页签/一级选项/二级选项/....")]
创建Inspector组件页签
AddComponentMenu特性:
[AddComponentMenu("一级选项/二级选项/....")]
添加脚本选项
快捷键:[MenuItem("Unity编辑器拓展/Lesson1/TestFun %#&A")]
评论(0)
暂无评论