Unity一個很強大的功能就是可擴展,你可以利用該功能創(chuàng)建出各種各樣的工具踩萎,直接整合到Unity中使用黎做。今天這篇文章將為大家全面介紹擴展Unity中所有菜單項的方法及各菜單項的適用場景。
介紹
Unity編輯器中可擴展的菜單總覽如下圖:
這些菜單分別是:
編輯器頂部的內(nèi)置菜單(A虱饿、B哩俭、C绷跑、D)
層級視圖右鍵彈出菜單(B)
項目視圖右鍵彈出菜單(A)
檢視面板中點擊Add Component按鈕彈出的菜單(C)
編輯器頂部的新菜單項(E)
擴展菜單項,只需在靜態(tài)方法前添加[MenuItem]屬性聲明即可凡资,使用該屬性需要引用UnityEditor命名空間砸捏。該方法是否公有、返回類型及方法名稱均無關(guān)緊要隙赁。
例如垦藏,在靜態(tài)方法前添加[MenuItem(“Window/Custom SubMenu/Custom Window”)]即可實現(xiàn)如下效果:
關(guān)于MenuItem路徑參數(shù)的幾點說明:
如果根目錄已存在于菜單項中(如“Assets”、“Window”等)伞访,那自定義菜單項將被添加到這些菜單下(“Component”除外)
必須要指定根目錄及菜單項名稱
菜單及菜單項名稱均支持包含空格
還可以在菜單項名稱后添加某個按鍵代碼來指定該菜單項的快捷鍵
子菜單沒有層級限制
例如掂骏,添加以下代碼:
然后依次點擊菜單項GameObject > Create RedBlue GameObject,就會在場景中新建名為“RedBlue GameObject”的游戲?qū)ο蟆?/p>
另外MenuItem還可支持多個參數(shù):
其中參數(shù)isValidateFunction決定是否啟用菜單項厚掷,設(shè)為True時弟灼,如果函數(shù)返回值為真级解,則菜單項啟用,函數(shù)返回值為假則禁用菜單項田绑。參數(shù)priority決定了菜單項在菜單中顯示的優(yōu)先級勤哗。
何時使用哪種菜單
由于對菜單的使用沒有嚴格的限制,這就需要開發(fā)者們了解各項菜單原本的目的掩驱。下面就來看看什么時候要用什么菜單俺陋。
A?
Assets
Assets菜單用于在項目中創(chuàng)建或修改資源。在項目視圖中右鍵點擊也會彈出Assets菜單昙篙。另外,如果將自定義菜單項放在“Assets/Create”目錄下诱咏,點擊項目視圖的“Create”按鈕時也會出現(xiàn)該自定義的菜單項苔可。
什么情況下適合使用Assets菜單呢:
新建ScriptableObject,所有自定義的ScriptableObject都可以通過Assets >? Create子菜單來創(chuàng)建
重命名精靈圖集袋狞,右鍵點擊包含多個精靈圖片的紋理焚辅,用菜單項幫助快速重命名所有精靈圖片
B
GameObject
GameObject菜單用于場景中與游戲?qū)ο笙⑾⑾嚓P(guān)的方法,如新建游戲?qū)ο蠡蚓庉嬕延袑ο蟮裙堆臁S益I單擊項目視圖也會顯示GameObject子菜單同蜻,在層級視圖點擊Create按鈕同樣會顯示GameObject子菜單。
如果希望自定義菜單項可以同時出現(xiàn)在右鍵彈出菜單和層級視圖的Create按鈕彈出的菜單中早处,就必須將該自定義菜單項放置在已有的菜單項中湾蔓,如2D Object或UI等。如果沒有合適的已有菜單項砌梆,也可以自己新建菜單項并將優(yōu)先級設(shè)為50以下默责。
如果自定義工具是用于為游戲?qū)ο筇砑幽_本,那最好還是放在Component菜單下咸包。使用GameObject菜單的幾種情況是:
新建預(yù)定義的游戲?qū)ο筇倚颍珙A(yù)設(shè)體實例,你可以使用菜單項在新場景中設(shè)置好自定義相機
將選中的游戲?qū)ο蟠鏋轭A(yù)設(shè)體烂瘫,該工具功能與GameObject下的Break Prefab Instance正好相反
C
Component
Component菜單下的所有菜單項都是用于為選中的游戲?qū)ο筇砑咏M件媒熊,為了加強該功能,Unity并不允許通過MenuItem向該菜單增加菜單項坟比,而是使用[AddComponentMenu]屬性芦鳍,該屬性直接用于自定義的MonoBehaviour類。點擊菜單項會自動添加該腳本葛账。
在腳本的類聲明前添加[AddComponentMenu]屬性怜校,該腳本會同時出現(xiàn)在Component菜單以及在檢視面板中查看游戲?qū)ο髸r點擊Add Component彈出的菜單中。該屬性帶有與MenuItem相同含義的路徑參數(shù)注竿,但不支持對自定義菜單項進行排序茄茁。
添加自定義菜單項后的Component菜單如下:
D
Unity魂贬、File、Edit裙顽、Window以及Help
這幾個菜單比較簡單付燥,其中的菜單項也不會出現(xiàn)在Unity編輯器的其它地方。需要打開新窗口的功能可以放在Window菜單中愈犹。需要同時修改游戲?qū)ο蠹百Y源的工具键科,如自定義的重復(fù)創(chuàng)建或重命名等,則放在Editor菜單中漩怎。Unity對此沒有具體要求勋颖,你可以按照自己的習慣來布置。
E
新建菜單項
如果已有菜單項均不適合自定義工具的功能勋锤,也可以自己新建一個菜單項饭玲。但Unity并不推薦在多人合作或共享資源的項目中新建菜單項,這可能會導(dǎo)致工具欄異橙矗混亂茄厘。?
關(guān)于Unity編輯器上方工具欄各菜單的擴展就介紹到這里,后續(xù)我們再為大家介紹各個菜單項的優(yōu)先級如何設(shè)置谈宛。