[Unity]擴展Hierachry的右鍵菜單


游戲制作到一定階段后,一定會出現一些GameObject的“模板”。比如一個敵人一定會有一個“Enemy Behaviour”、“Box Collider”等。雖然Prefab可以用來作為“預制件”,但是Prefab產生的物體和Prefab自身有關聯,同時還要從Project菜單里去找到Prefab再拖出來。
一個解決方案是擴展編輯器菜單,就像右鍵Hierachry時出現的3D Object、2D Object一樣。可以創造GameObject的菜單有兩個,一個是頂部菜單的GameObject,另一個是Hierachry的右鍵菜單。
https://unity3d.com/cn/learn/tutorials/topics/interface-essentials/unity-editor-extensions-menu-items 的文章中提到了如何擴展頂部菜單.

using UnityEngine;
using UnityEditor;
 
public class MenuItems
{
    [MenuItem("Tools/Clear PlayerPrefs")]
    private static void NewMenuOption()
    {
        PlayerPrefs.DeleteAll();
    }
}

但是沒有提到Hierachry右鍵菜單的擴展。
http://answers.unity3d.com/questions/22947/adding-to-the-context-menu-of-the-hierarchy-tab.html 中的文章提到,Hierachry右鍵菜單其實來自於頂部GameObject的菜單,只是截取了其中的“一段”。如果要擴展,只需要把添加到GameObject菜單的菜單項的優先級設置到這“一段”之間即可。這樣就可以同時出現在GameObject菜單和Hierachry右鍵菜單中了。

 public static class Test {
 
     [MenuItem("GameObject/MyMenu/Do Something", priority = 0)]
     static void Init() {
         Debug.Log("here");
     }
 }

下圖顯示了兩個菜單中各項的優先度。可以看到只要優先度在0到49之間,就可以同時出現在兩個菜單中。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM