1. 程式人生 > >【Untiy3d-編輯器相關3】 各種面板上新增自定義選單

【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.     }