using System.Linq; using UnityEditor; using UnityEngine; using UnityObject = UnityEngine.Object; namespace Unity.VisualScripting { public static class DragAndDropUtility { public static Vector2 position => Event.current.mousePosition; public static Vector2 offsetedPosition => Event.current.mousePosition + mouseCursorOffset; public static bool Contains() where T : UnityObject { return DragAndDrop.objectReferences.Any(o => o is T); } public static bool Is() { return DragAndDrop.objectReferences.Length == 1 && DragAndDrop.objectReferences[0] is T; } public static T First() { return DragAndDrop.objectReferences.OfType().First(); } public static T Single() { return DragAndDrop.objectReferences.OfType().Single(); } public static T Get() { return Single(); } public static readonly Vector2 mouseCursorOffset = new Vector2(23, 10); } }