一、 特殊文件夹Editor
对于编辑器拓展相关的文件需要放置在名为Editor的文件夹中,如果被放置在其他地方,会导致打包时候不能够成功,避免打包时报错。
二、 菜单栏中添加自定义页签(不可被打包,因为在edior文件夹下)
- 命名空间:UnityEditor
- 特性 MenuItem
- 用法:在静态函数前加上 [MenuItem(“页签/一级选项/二级选项/…”)]
- 作用: 当在菜单栏点击该页签,将执行对应的静态函数中的逻辑
- 注意:
- 不同在意继承对象,不继承MonoBehaviour也可以
- 斜杠必须是/
- 方法是私有函数的也可以,只要是静态,且加了特性
- 示例
1 | [ ] |
- 效果
三、在Hierarchy窗口中添加自定义页签(不可被打包,因为在edior文件夹下)
- 命名空间:UnityEditor
- 特性 MenuItem
- 用法:在静态函数前加上,并且页签命名放入GameObject路径 [MenuItem(“GameObject/页签/一级选项/二级选项/…”)]
- 注意情况跟第二点中一致,外还有一个: 在菜单栏的GameObject中也会出现对应选项
- 示例:
1 | [ ] |
- 效果:
四、在Project窗口中添加自定义页签(不可被打包,因为在edior文件夹下)
- 与前面一致,唯有路径不同
- 用法:在静态函数前加上,并且页签命名放入Assets路径 [MenuItem(“Assets/页签/一级选项/二级选项/…”)]
- 在菜单栏的Assets中也会出现对应选项
- 示例:
1 | [ ] |
- 效果:
五、在菜单栏的Component菜单添加脚本(可被打包)
-
命名空间:UnityEngine
-
特性:AddComponentMenu
-
用法:
在想要通过Component菜单添加的脚本类前面前加上
[AddComponentMenu(“一级选项/二级选项/…”)] -
注意:
- 脚本需要继承MonoBehaviour对象
- 斜杠必须是/
- 最后一级选项的名字可以和脚本名(该脚本不会放在Editor文件夹内)不一样,但是建议一致
-
示例
1 | using System.Collections; |
- 效果:
六、 在Inspector为脚本右键添加菜单(不可被打包)
- 命名空间:UnityEditor
- 特性 MenuItem
- 用法:在静态函数前加上[MenuItem(“CONTEXT/脚本名/页签/一级选项/二级选项/…”)]
- 注意:
- 不用在意继承对象
- 斜杠必须是
- 示例
1 | [ ] |
- 效果:
七、加入快捷键
-
单键
- 路径后 + 空格 + 下划线 + 想要的按键
-
组合键:
下划线替换为
- %表示ctrl
- #表示shift
- &表示alt
- 其他支持的按键:
- LEFT、RIGHT:持类似#LEFT是左shift之类的按键
- UP、DOWN、F1…F12、HOME、END、PGUP、PGDN
- 以菜单栏中添加自定义页签 为例
1 | [//表示快捷键为Ctrl+Shift+Alt+A ] |
- 效果
八、总结
- 使用UnityEditor命名空间的脚本必须放在Editor文件夹下,避免打包报错
- 添加自定义页签 需要用到特性 MenuItem
- 添加代码添加页签 需要用到特性 AddComponentMenu