mirror of
https://github.com/Siccity/xNode.git
synced 2025-12-20 17:26:02 +08:00
32 lines
1.0 KiB
C#
32 lines
1.0 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.EventSystems;
|
|
|
|
namespace XNode.Examples.RuntimeMathNodes {
|
|
public class NodeDrag : MonoBehaviour, IPointerDownHandler, 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 OnPointerDown(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;
|
|
}
|
|
}
|
|
} |