内容会持续更新,有错误的地方欢迎指正,谢谢!
对Unity进行扩展,开发一些工具、窗口,帮我们做一些重复的工作(创建一百个敌人),用工具来完成节约开发时间。
跟编辑器相关的代码都放在Editor文件夹中,打包时此文件夹不会被打包进游戏,只在编辑器中使用。
1.使用MenuItem添加菜单栏按钮(包括设置按钮所在的路径):脚本不是以组件的形式来存在的,所以不继承MonoBehaviour;加上using UnityEditor;;用Unity添加工具类 其实也是调用我们的方法。
[MenuItem("Tools/test/test1")]//Tools为根目录,test为次目录,test1就是所加的按钮
static void Test(){}
[MenuItem("Tools/test/test2")]//和test1同目录
static void Test(){}
2.也可以用MenuItem给已有根目录添加工具按钮:
[MenuItem(“Window/test/test1”)]
3.在Hierarchy面板中给组件添加右键按钮功能:
生成后的位置的先后顺序:由第三个参数决定,是priority,即优先度,默认1000,越小越靠前。相差11即在两者之间画一根直线区分板块)
[MenuItem("GameObject/list/LiST",false,1)]//优先级为1,排在靠前的位置
static void Test()
{
Debug.Log("bs");
}
如此以后,在Hierarchy面板中右键后 亦可选择之。
4.在Project面板中给组件添加右键按钮功能:
用[MenuItem("Assets/list/LiST",false,1)]
,右键即可
5.在Inspector面板中给组件添加右键按钮功能:
[MenuItem("CONTEXT/MeshRenderer/Print")]//CONTEXT 组件名 按钮名
static void InitHealthy()
{
Debug.Log("666");
}
6.给添加的按钮添加快捷键:
[MenuItem("Tools/show _s")]//s就是快捷键,show是按钮名
7.在脚本中,使用ContextMenu为Inspector中脚本添加右键按钮功能:
public int startingHealth = 100;
[ContextMenu("hp")]
void hp()
{
startingHealth += 20;
}
8.在脚本中,使用ContextMenuItem为Inspector中脚本添加右键某一行功能
[ContextMenuItem("add", "hp")]//第一个参数是按钮名,第二个是调用的方法名
public int startingHealth = 100;
void hp()
{
startingHealth += 20;
}
还有新建窗口等功能,此处就不讲了,用到的时候查查就行了。