自定义菜单栏拓展
一、特殊文件夹 Editor
Editor 文件夹下的文件不会被打包出去 编辑器相关的脚本都要放置在其中,避免打包报错
二、菜单栏中添加自定义标签
- 命名空间: UnityEditor
- 特性: MenuItem
- 使用方法:
[MenuItem("页签/一级选项/二级选项/···")]
- 作用: 当在菜单栏点击该页签时,将执行静态函数中的逻辑
- 注意点:
- 不用在意继承对象
- 斜杠必须左斜
/
1 2 3 4 5
| [MenuItem("Unity编辑器拓展/Lesson1/TestFun")] private static void TestFun() { Debug.Log("菜单栏拓展"); }
|
三、Hierarchy 窗口中添加自定义页签
- 命名空间: UnityEditor
- 特性: MenuItem
- 使用方法: 在静态函数前,加上页签命名放入 GameObject 路径
[MenuItem("GameObject/页签/一级选项/二级选项/···")]
- 注意点:
- 不用在意继承对象
- 斜杠必须左斜
/
- 在菜单栏的 GameObject 中也会出现对应选项
1 2 3 4 5
| [MenuItem("GameObject/Unity编辑器拓展/Lesson1/TestFun2")] private static void TestFun2() { Debug.Log("Hierarchy 窗口拓展"); }
|
四、Project 窗口中添加自定义标签
- 命名空间: UnityEditor
- 特性: MenuItem
- 使用方法: 在静态函数前,加上页签命名放入 GameObject 路径
[MenuItem("Assets/页签/一级选项/二级选项/···")]
- 注意点:
- 不用在意继承对象
- 斜杠必须左斜
/
- 在菜单栏的 Assets 中也会出现对应选项
1 2 3 4 5
| [MenuItem("Assets/Unity编辑器拓展/Lesson1/TestFun2")] private static void TestFun3() { Debug.Log("Assets窗口拓展"); }
|
五、菜单栏中的 Component 菜单中添加脚本
- 命名空间: UnityEngine
- 特性: AddComponentMenu
- 用法: 想要通过 Component 菜单添加的脚本前加上
AddComponentMenu("一级选项/二级选项/···")
- 注意:
- 脚本必须继承 Mono
- 斜杠必须左斜
/
- 最后一级选项的名字可以和脚本名字不一样,但建议一致
1 2 3 4
| [AddComponentMenu("Unity编辑器拓展/添加脚本/Lesson1Test")] public class Lesson1Test : MonoBehaviour { }
|
六、Inspector 窗口 右键脚本菜单中添加
- 命名空间: UnityEditor
- 特性: MenuItem
- 用法: 在静态函数前添加
MenuItem("CONTEXT/脚本名/页签/一级选项/二级选项/···")
- 注意:
- 不用在意继承
- 斜杠必须左斜
/
1 2 3 4 5
| [MenuItem("CONTEXT/Lesson1Test/Unity编辑器拓展/Lesson1/TestFun2")] private static void TestFun4() { Debug.Log("Inspector 窗口 右键脚本菜单中拓展"); }
|
七、加入快捷键
- 单键 路径后 + 空格 + 下划线 + 想要的按键
- 组合键 路径后 + 空格 + 特殊符号 + 想要的按键 特殊符号
- % 表示 ctrl
- # 表示 Shift
- & 表示 alt
- 其他支持按键
- LEFT、RIGHT : 类似#LEFT 是左 shift 之类的按键
- UP、DOWN、F1、···、F12、HOME、END、PGUP、PGDN
1 2 3 4 5
| [MenuItem("Unity编辑器拓展/Lesson1/TestFun _F4")] private static void TestFun() { Debug.Log("菜单栏拓展"); }
|