Unity Editor Hierarchy下拉選單擴充套件
阿新 • • 發佈:2022-04-20
TestHierarchyPopupMenuEditor.cs
using UnityEditor; using UnityEngine; public class TestHierarchyPopupMenuEditor : ScriptableObject { [MenuItem("GameObject/Create New Child", true)] private static bool ValidateCreateChild() { GameObject[] gameObjects = Selection.gameObjects; return gameObjects.Length > 0; } [MenuItem("GameObject/Create New Child", false, 11)] private static void CreateChild() { GameObject[] gameObjects = Selection.gameObjects; for (int i = 0; i < gameObjects.Length; i++) { var child = new GameObject("New Child"); child.transform.parent = gameObjects[i].transform; } } }
修改為按下並釋放滑鼠中鍵彈出指定選單
TestHierarchyPopupMenuEditor.cs
using UnityEditor; using UnityEngine; public class TestHierarchyPopupMenuEditor : ScriptableObject { [InitializeOnLoadMethod] private static void StartInitializeOnLoadMethod() { EditorApplication.hierarchyWindowItemOnGUI += OnHierarchyGUI; } private static void OnHierarchyGUI(int instanceID, Rect selectionRect) { if (Event.current!=null) { Debug.Log($"button:{Event.current.button}, type:{Event.current.type}"); } if (Event.current != null && Event.current.button == 2 && Event.current.type == EventType.MouseUp) { // 按下並釋放滑鼠中鍵時 //if (Selection.activeTransform) { // 選中啟用一個 Transform 時才彈出 Vector2 mousePosition = Event.current.mousePosition; EditorUtility.DisplayPopupMenu(new Rect(mousePosition.x, mousePosition.y, 0, 0), "GameObject/", null); // 彈出 GameObject 選單 //} } } }