diff --git a/Scripts/Editor/NodeEditorAction.cs b/Scripts/Editor/NodeEditorAction.cs
index 4ae446e..5319639 100644
--- a/Scripts/Editor/NodeEditorAction.cs
+++ b/Scripts/Editor/NodeEditorAction.cs
@@ -52,6 +52,14 @@ namespace XNodeEditor {
wantsMouseMove = true;
Event e = Event.current;
switch (e.type) {
+ case EventType.DragUpdated:
+ case EventType.DragPerform:
+ DragAndDrop.visualMode = DragAndDropVisualMode.Generic;
+ if (e.type == EventType.DragPerform) {
+ DragAndDrop.AcceptDrag();
+ graphEditor.OnDropObjects(DragAndDrop.objectReferences);
+ }
+ break;
case EventType.MouseMove:
//Keyboard commands will not get correct mouse position from Event
lastMousePosition = e.mousePosition;
diff --git a/Scripts/Editor/NodeGraphEditor.cs b/Scripts/Editor/NodeGraphEditor.cs
index f79779f..d33a3b3 100644
--- a/Scripts/Editor/NodeGraphEditor.cs
+++ b/Scripts/Editor/NodeGraphEditor.cs
@@ -70,6 +70,11 @@ namespace XNodeEditor {
return NodeEditorPreferences.GetTypeColor(type);
}
+ /// Deal with objects dropped into the graph through DragAndDrop
+ public virtual void OnDropObjects(UnityEngine.Object[] objects) {
+ Debug.Log("No OnDropItems override defined for " + GetType());
+ }
+
/// Create a node and save it in the graph asset
public virtual void CreateNode(Type type, Vector2 position) {
XNode.Node node = target.AddNode(type);