【Untiy3d-编辑器相关3】 各种面板上添加自定义菜单

  1.     [MenuItem("MenuItem/ShowTest1")]
  2.     public static void ShowTest1()
  3.     {
  4.         Debug.Log("上方菜单栏MenuItem 显示一个按钮 ShowTest1"); 
  5.     }

  1.     [MenuItem("GameObject/ShowTest2",false,0)]
  2.     public static void ShowTest2()
  3.     {
  4.         Debug.Log("GameObject菜单栏 和 Hierarchy视图 里点击鼠标右键显示 显示一个按钮 ShowTest2");
  5.     }

  1.     [MenuItem("Assets/ShowTest3",false,0)]
  2.     public static void ShowTest3()
  3.     {
  4.         Debug.Log("上方菜单栏和project里点击鼠标
  5.          右键显示 ShowTest3");
  6.     }

     //MenuCommand是当前正在操作的组件

  1. [MenuItem("CONTEXT/Light/ShowTest4")]//CONTEXT(大写) 组件名 按钮名
  2. static void InitHeathAndSpeed(MenuCommand cmd)
  3. {
  4.     Debug.Log("在带有Light组件的GameObject右键,
  5.     InSpector面板显示 ShowTest4按钮");
  6. }

     //快捷键

    % = ctrl    # = Shift    & = Alt    LEFT/RIGHT/UP/DOWN = 上下左右    F1…F2 = F...

    HOME, END, PGUP, PGDN = 键盘上的特殊功能键

    都以下划线(_)开始

  1.     //[MenuItem("MenuItem/快捷键1 _%#d")]
  2.     private static void MenuItemFunction1()
  3.     {
  4.         Debug.Log("Ctrl + Shitf + d 快捷键输出");
  5.     }

    //只有选中指定类型的object,按钮才有用,不然显示灰色

  1.     [MenuItem("MenuItem/Selected GameObject")]
  2.     private static void SelectedGameObject()
  3.     {
  4.         Debug.Log("指定选中GameObject类型,
  5.         MenuItem菜单下的 Selected GameObject 才有用");
  6.     }
  7.  
  8.     [MenuItem("MenuItem/Selected GameObject", true)]
  9.     private static bool CheckObjectType()
  10.     {
  11.         Object selectedObject = Selection.activeObject;
  12.         if(selectedObject != null &&
  13.             selectedObject.GetType() == typeof(GameObject))
  14.         {
  15.             return true;
  16.         }
  17.         return false;
  18.     }

猜你喜欢

转载自blog.csdn.net/qq_19269527/article/details/84331383