首先,在Project窗口创建名为"Editer"的文件夹,用于存放unity扩展编辑器的代码。
重写Hierarchy窗口的右键菜单
效果:
代码:
using UnityEditor;
using UnityEngine;
public class MenuOverride
{
[InitializeOnLoadMethod]
static void InitOnLoad()
{
EditorApplication.hierarchyWindowItemOnGUI += (instanceID, rect) =>
{
//当前事件不为空,右键,鼠标抬起
if (Event.current != null && Event.current.button == 1 &&
Event.current.type == EventType.MouseUp
)
{
//Debug.Log(" hierarchy mouse up ");
EditorUtility.DisplayPopupMenu(
position: new Rect(Event.current.mousePosition.x, Event.current.mousePosition.y, 0, 0),//在鼠标位置,宽高是0
menuItemPath: "Component",//显示Component菜单
command: null);
Event.current.Use();//用掉这个事件,就不会显示原来的菜单了
}
};
}
}