summaryrefslogtreecommitdiff
path: root/Assets/AmplifyShaderEditor/Plugins/Editor/Menu/DragAndDropTool.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2020-10-22 23:30:02 +0800
committerchai <chaifix@163.com>2020-10-22 23:30:02 +0800
commit917e9e0b320775634dc2e710f7deac74fd0822f0 (patch)
tree637f3cccc80e7738c8a077fa3ff59218b8b18ee8 /Assets/AmplifyShaderEditor/Plugins/Editor/Menu/DragAndDropTool.cs
parent8268e4e308bd110dfea4ad849a7ff74e66951349 (diff)
* amplify shader editor
Diffstat (limited to 'Assets/AmplifyShaderEditor/Plugins/Editor/Menu/DragAndDropTool.cs')
-rw-r--r--Assets/AmplifyShaderEditor/Plugins/Editor/Menu/DragAndDropTool.cs47
1 files changed, 47 insertions, 0 deletions
diff --git a/Assets/AmplifyShaderEditor/Plugins/Editor/Menu/DragAndDropTool.cs b/Assets/AmplifyShaderEditor/Plugins/Editor/Menu/DragAndDropTool.cs
new file mode 100644
index 00000000..2da02086
--- /dev/null
+++ b/Assets/AmplifyShaderEditor/Plugins/Editor/Menu/DragAndDropTool.cs
@@ -0,0 +1,47 @@
+// Amplify Shader Editor - Visual Shader Editing Tool
+// Copyright (c) Amplify Creations, Lda <info@amplify.pt>
+
+using UnityEditor;
+using UnityEngine;
+
+namespace AmplifyShaderEditor
+{
+ public class DragAndDropTool
+ {
+ public delegate void OnValidDropObject(params UnityEngine.Object[] draggedObjs );
+ public event OnValidDropObject OnValidDropObjectEvt;
+
+ public void Destroy()
+ {
+ OnValidDropObjectEvt = null;
+ }
+
+ public void TestDragAndDrop( Rect dropArea )
+ {
+ Event currentEvent = Event.current;
+ EventType currentEventType = currentEvent.type;
+
+ switch (currentEventType)
+ {
+ case EventType.DragUpdated:
+ case EventType.DragPerform:
+ {
+
+ if (!dropArea.Contains(currentEvent.mousePosition))
+ return;
+
+ DragAndDrop.visualMode = DragAndDropVisualMode.Copy;
+ if (currentEvent.type == EventType.DragPerform)
+ {
+ DragAndDrop.AcceptDrag();
+ if (OnValidDropObjectEvt != null)
+ {
+ OnValidDropObjectEvt(DragAndDrop.objectReferences);
+ }
+ }
+ }break;
+ case EventType.DragExited:DragAndDrop.PrepareStartDrag();break;
+ }
+ }
+ }
+}