예제 #1
0
        public static void OnSceneDrag(SceneView sceneView)
        {
            Event current = Event.current;

            if (current.type != EventType.DragUpdated && current.type != EventType.DragPerform && current.type != EventType.DragExited)
            {
                return;
            }
            Sprite[] spriteFromDraggedPathsOrObjects = SpriteUtility.GetSpriteFromDraggedPathsOrObjects();
            if (spriteFromDraggedPathsOrObjects.Length == 0)
            {
                return;
            }
            Sprite x = spriteFromDraggedPathsOrObjects[0];

            if (x == null)
            {
                return;
            }
            DragAndDrop.visualMode = DragAndDropVisualMode.Copy;
            EventType type = current.type;

            if (type == EventType.DragPerform)
            {
                Vector3 point = HandleUtility.GUIPointToWorldRay(current.mousePosition).GetPoint(10f);
                point.z = 0f;
                GameObject objectToUndo = SpriteUtility.DropFramesToSceneToCreateGO(spriteFromDraggedPathsOrObjects, point);
                Undo.RegisterCreatedObjectUndo(objectToUndo, "Create Sprite");
                current.Use();
            }
        }