Unity编辑器扩展-在Scene视图添加右键菜单

本文介绍如何在Unity编辑器中扩展Scene视图,添加右键菜单功能。通过监听SceneView.onSceneGUIDelegate事件来捕获右键点击,并使用GenericMenu类创建自定义菜单项。详细代码和更多功能可在UGUI界面编辑器扩展集合中查看。
摘要由CSDN通过智能技术生成

我用Unity前的界面编辑器是可以选中节点右键显示菜单的,所以现在也想在Unity上弄一个,需要做的也不多,一是知道什么时候在Scene视图右键单击了,二是在鼠标位置上显示菜单.

对于拦截Scene视图的右键单击事件,可以给SceneView.onSceneGUIDelegate加个处理方法就可以了,Scene视图的大部分事件都可以统一在那里处理.

菜单的话Unity也封闭得很好了,主要用GenericMenu类,其AddItem方法就是增加一个菜单项,传入显示的GUIContent和回调函数即可,代码如下:

public class SceneEditor
{
    [InitializeOnLoadMethod]
    static void Init()
    {
        SceneView.onSceneGUIDelegate += OnSceneGUI;
    }
    static void OnSceneGUI(SceneView sceneView)
    {
        Event e = Event.current;
        if (e != null && e.button == 1 && e.type == EventType.mouseUp)
        {
            //右键单击啦,在这里显示菜单
            GenericMenu menu = new GenericMenu();
            menu.AddItem(new GUIContent("菜单项1"), false, OnMenuClick, "menu_1");
            menu.AddItem(new GUIContent("菜单项2"), false, OnMenuClick, "menu_2");
            menu.AddItem(new GUIContent(
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值