summaryrefslogtreecommitdiff
path: root/Other/NodeEditorExamples/Assets/xNode-examples/Examples/RuntimeMathGraph/Scripts/NodeDrag.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2022-06-28 09:40:37 +0800
committerchai <chaifix@163.com>2022-06-28 09:40:37 +0800
commit49b25e755b70ec412feaaf0b898d6f7e09d2bea6 (patch)
tree3c5f4260f30d1c2d7196db93153700d7ddec3157 /Other/NodeEditorExamples/Assets/xNode-examples/Examples/RuntimeMathGraph/Scripts/NodeDrag.cs
parentc92269331692feca2c276649f6c4ee8911f1f859 (diff)
+node example
Diffstat (limited to 'Other/NodeEditorExamples/Assets/xNode-examples/Examples/RuntimeMathGraph/Scripts/NodeDrag.cs')
-rw-r--r--Other/NodeEditorExamples/Assets/xNode-examples/Examples/RuntimeMathGraph/Scripts/NodeDrag.cs40
1 files changed, 40 insertions, 0 deletions
diff --git a/Other/NodeEditorExamples/Assets/xNode-examples/Examples/RuntimeMathGraph/Scripts/NodeDrag.cs b/Other/NodeEditorExamples/Assets/xNode-examples/Examples/RuntimeMathGraph/Scripts/NodeDrag.cs
new file mode 100644
index 00000000..96ba753d
--- /dev/null
+++ b/Other/NodeEditorExamples/Assets/xNode-examples/Examples/RuntimeMathGraph/Scripts/NodeDrag.cs
@@ -0,0 +1,40 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.EventSystems;
+
+namespace XNode.Examples.RuntimeMathNodes {
+ public class NodeDrag : MonoBehaviour, IPointerClickHandler, IBeginDragHandler, IDragHandler, IEndDragHandler {
+ private Vector3 offset;
+ private UGUIMathBaseNode node;
+
+ private void Awake() {
+ node = GetComponentInParent<UGUIMathBaseNode>();
+ }
+
+ public void OnDrag(PointerEventData eventData) {
+ node.transform.localPosition = node.graph.scrollRect.content.InverseTransformPoint(eventData.position) - offset;
+ }
+
+ public void OnBeginDrag(PointerEventData eventData) {
+ Vector2 pointer = node.graph.scrollRect.content.InverseTransformPoint(eventData.position);
+ Vector2 pos = node.transform.localPosition;
+ offset = pointer - pos;
+ }
+
+ public void OnEndDrag(PointerEventData eventData) {
+ node.transform.localPosition = node.graph.scrollRect.content.InverseTransformPoint(eventData.position) - offset;
+ Vector2 pos = node.transform.localPosition;
+ pos.y = -pos.y;
+ node.node.position = pos;
+ }
+
+ public void OnPointerClick(PointerEventData eventData) {
+ if (eventData.button != PointerEventData.InputButton.Right)
+ return;
+
+ node.graph.nodeContextMenu.selectedNode = node.node;
+ node.graph.nodeContextMenu.OpenAt(eventData.position);
+ }
+ }
+} \ No newline at end of file