[Unity3D]编辑器类MenuItem方法浅析

前言

在使用Editor类型的时候,我们需要显示一个入口函数,一般来说,我们都是用MenuItem这个类来构造一个入口函数。

知识点

  1. itemName(string)
    这是用来显示我们在编辑器上所看到的item的名字,也可以认为是一个路径,用“/”来划分路径。
    当路径为Gameobject中的相应位置时候,还可以在Hierarchy中右键点出。
    当路径为“CONTEXT”后接组件名字的时候,是可以在组件的右键列表中添加按钮。

  2. validate(bool)
    这个是用来控制emunitem的可点击事件。一般来说我们都是不需要检测是够需要点击。但是有的时候当我们需要对一个object做判断,来规避一些错误。当这个object不是我们所需要的是object的时候,我们可以通过返回一个false来控制item的点击。示例代码:

    [MenuItem("GameObject/item",true,10)]
    static bool item(Menucommand menuCommand){
    if(menuCommand.context != null){
        return true;
    }else{
        return false;
    }
    }
    [MenuItem("GameObject/item",false,10)]
    static void item1(Menucommand menuCommand){
    Debug.Log(menuCommand.ToString());
    }

    如上所示,需要itemname为一致,配套使用,返回值为false的时候,item会灰掉不能点击。点击所走的方法为validate为false的。

  3. priority(int)
    当两个itemname的priority的值大于10的时候,将创建分割线。数值越大,越靠近列表的最下。相同itemname的调用的是priority最大的。