有unity中的菜單欄是我們經常使用到的地方,如下圖:
MenuItem的作用就是增加一個自己的菜單
使用方法:
在工程中Assets目錄下任意一個Editor目錄(以后簡稱Editor目錄,如果不存在,請自行創建)中創建任意腳本,比如我創建了叫做MenuTest .cs,雙擊進入代碼編輯,創建一個靜態函數,(代碼來自官方文檔http://docs.unity3d.com/Documentation/ScriptReference/MenuItem.html)如下:
public class MenuTest : MonoBehaviour { // Add a menu item named "Do Something" to MyMenu in the menu bar. [MenuItem ("MyMenu/Do Something")] static void DoSomething () { Debug.Log ("Doing Something..."); } }
保存回到unity,編譯好之后會發現在菜單欄上多了一個MyMenu,點擊之后會出現二級選擇菜單Do Something。點擊Do Something會在輸出窗口輸出Doing Something...
是的,MenuItem的用法就是這么簡單,將[MenuItem()]標簽放在一個靜態函數上,括號內部就是菜單層級。
public class MenuTest : MonoBehaviour { // Add a menu item named "Do Something" to MyMenu in the menu bar. [MenuItem ("MyMenu/Do Something")] static void DoSomething () { Debug.Log ("Doing Something..."); } [MenuItem ("Assets/MyMenu")] static void DoSomething () { Debug.Log ("MyMenu Click"); } }
要補充的是,菜單層級可以是系統自身的層級,比如Window菜單,Assets菜單等。例如
這樣就會在系統的Assets菜單下生成一個MyMenu菜單。
對於Assets菜單,就是project窗口的右鍵菜單。所以,利用這個可以創建文件的右鍵菜單,比如創建一個xml文件等等
ok,這就是MenuItem的基本功能,再高級的用法,比如菜單的快捷鍵,不可用狀態等,就見官網吧。