在菜单栏添加按钮
新建脚本,无需继承mono,start update方法,引用命名空间usingUnityEditor;
定义按钮
菜单栏显示名称/按钮名称, MenuItem可以在任何脚本内使用
[MenuItem ("Testbtn/test/test1")]
static void test0()
{
Debug.Log("测试0,,");
}
[MenuItem("Testbtn/test/test2")] //设定一个按钮都要添加对应的方法
static void test1() //名字不能相同,以上两种设置了同意父层级test下的两个按钮
{
Debug.Log("测试2,,");
}
我们发现unity会对按钮有分类,用横线分开,自己设置的方式如下:
[MenuItem("Testbtn/test/test2", false,1)]
第三个参数为显示顺序,值越小就越靠上,当相邻两个按钮的值相差大于11就会分类,用横线分开
在组件右键内添加按钮
[MenuItem("CONTEXT/test/UnLog",false,1)]//context大写,组件名,脚本名
[MenuItem("CONTEXT/Rigidbody/Initdefult")]//右键rigidbody组件,自行设置初始
static void test3(MenuCommand cmd)//menucommand 是当前正在操作的组件,不需要传参
{
Rigidbody rigi = cmd.context as Rigidbody;//as比用括号更温和,失败时返回空值
rigi.useGravity = false; //不适用重力,摩擦力为0
rigi.mass = 0;
}
foreach (GameObject item in Selection .objects )//对选中物体操作
{
Debug.Log(item.name);
GameObject.DestroyImmediate (item);//删除选中物体,无法撤销
//Undo.DestroyObjectImmediate(item);//可撤销的删除
}
}
菜单栏添加快捷键 %代表Ctrl #代表shift &代表alt
[MenuItem("Testbtn/test/test1 _t")]按下t就可以执行按钮对应操作
[MenuItem ("Testbtn/test/test1&t")]按下alt+t执行
菜单项是否启动
第二个参数,对应方法为验证方法,值为true,需要返回一个bool值,为true这可以点击反之则不
能,要路径一致,仅作判断,当返回true,相同路径的按钮即可点击
[MenuItem("Testbtn/test/test2", true ,1)]//当show()方法返回true,test2方可点击
static bool show()
{
if (Input.GetKey(KeyCode.A)) return true;
return false;
}
[MenuItem("Testbtn/test/test2", false,1)]
static bool test2()
{
Debug.Log("测试2,,");
}
ContextMenu 在自己的脚本中添加右键按钮,在脚本内,方便访问该脚本的属性等
可以定义上下文菜单,和使用 MenuItem 并以“ Context/ 。。”定义菜单一样这个属性不同的是,你能给指定的组件定义默认的上下文菜单项,然而使用 MeneItem 只是为了扩展现有的组件菜单,比如引擎默认的组件。public class NameBehaviour : MonoBehaviour
{
public string Name;
[ContextMenu("Reset Name")]
private static void ResetName()
{
Name = string.Empty;
}
}
ContextMenuItem 给脚本属性添加右键,
被添加到了一个字段上没有方法,所有它接受两个参数:一个用于显示菜单项的名字,一个用于指定一个当菜单被选中时要调用的实例方法。
public class NameBehaviour : MonoBehaviour
{ // 按钮名字 方法名字
[ContextMenuItem("Randomize Name", "Randomize")]
public string Name;
private void Randomize()
{
Name = "Some Random Name";
}
}
上面代码的结果显示了当在字段上单击右键时弹出的菜单项:
下载文档点击这里 https://download.csdn.net/download/nt_xs_j/10503003