Многие не знают, но у Control нод есть встроенная реализация «перетаскиваний» (drag n drop). Я собрал вот такую простенькую сцену :
Сell это textureRect с текстурой сковородки. И еще несколько textureRect с разными текстурами продуктов.
Label - улетающий текст с названием продукта. Подвешиваем на сковородку один скрипт.
И второй скрипт вешаем на все продукты. Так как таскать будем продукт, то открываем второй скрипт и прописываем вот такой код : Что тут происходит :
Мы по клику создаем textureRect , толкаем в качестве текстуры текстуру которая находится на текущей иконке. Увеличиваем (это потому что у меня изначально увеличенные иконки в сцене) , меняем фильтрацию, и смещаем pivot чтобы иконка была в центре курсора.
Стартуем метод set_drag_preview который нарисует нашу иконку и прикрепит на время таскания её к курсору.
Ну и возвращать будем имя файла текстуры. (Тут в принципе можно возвращать что вам угодно. Но мне нужен был текст) Теперь открываем скрипт сковородки, и наваливаем туда