1,在Assets目录下创建一个Editor的文件夹.
这个文件夹是unity默认存放拓展编辑器脚本的地方,打包项目文件时不会被一起打包,只能在编辑器模式下使用。
2,在Editor下创建一个脚本MenuExpansion
3,实现MenuExpansion
(1)导包;using UnityEditor;
(2)使用特性MenuItem;注意Polygon/Triangle,一定要有/Triangle(即有子菜单),只有Polygon会报错。
(3)方法为static
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
public class MenuExpansion : MonoBehaviour
{
[MenuItem("Polygon/Triangle")]
static void triangle()
{
Debug.Log("多边形下的三角形");
}
}
效果展示
如果想要在已有的目录下展示,那么就修改代码
[MenuItem("GameObject/Triangle")]
static void triangle()
{
Debug.Log("多边形下的三角形");
}
4,特性MenuItem的3种重载方法
在这个重载中,MenuItem
特性接受三个参数:
- 第一个参数是菜单项的路径和名称。
- 第二个参数是一个布尔值,用于指示验证函数是否应该被调用。如果为
true
,则第一个方法(验证函数)会被调用;如果为false
,则第二个方法(实际执行的命令)会被调用。 - 第三个参数是一个优先级值,用于决定菜单项在菜单中的排序。值越大,菜单项的位置越靠后,超过10会出现下划线。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
public class MenuExpansion : MonoBehaviour
{
[MenuItem("Polygon/Triangle",false,11)]
static void triangle()
{
Debug.Log("多边形下的三角形");
}
[MenuItem("Polygon/Triangle",true,11)]
static bool triangleValidation()
{
return false;
}
[MenuItem("Polygon/Rectangle", false, 0)]
static void rectangle()
{
Debug.Log("多变形下的矩形");
}
}