Unity编辑器拓展之十六:监听Scene Drag事件

监听Scene Drag事件

Gif动图展示

这里写图片描述

目的

通过该监听,获取到被Drag进Scene的物体的类型,可以做一些预处理,例如:Drag一张图片,直接生成一个GameObject(带Image,前提是UGUI)的放在Canvas下

代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
public class SceneManager
{
    [InitializeOnLoadMethod]
    static void Init()
    {
        SceneView.onSceneGUIDelegate += OnSceneGUI;
    }

    private static void OnSceneGUI(SceneView sceneView)
    {
        Event e = Event.current;
        if(e.type == EventType.DragUpdated || e.type == EventType.DragPerform)
        {
            DragAndDrop.visualMode = DragAndDropVisualMode.Copy;
            if(e.type == EventType.DragPerform)
            {
                DragAndDrop.AcceptDrag();
                for (int i = 0; i < DragAndDrop.objectReferences.Length; i++)
                {
                    Object handleObj = DragAndDrop.objectReferences[i];
                    if(handleObj != null)
                    {
                        Debug.LogError(handleObj.GetType());
                    }
                }
            }
        }
    }
}

以上知识分享,如有错误,欢迎指出,共同学习,共同进步

猜你喜欢

转载自blog.csdn.net/qq_26999509/article/details/81292484