Мне кажется можно это сделать обрабатывая
события GUI:
1. Определить над какой кнопкой находится мышка.
2. Обработать
Event.type (EventType.MouseDown - начало перетаскивания, EventType.MouseUp - конец перетаскивания, EventType.MouseDrag - само перетаскивание).
Можно поступить по другому:
1. Определить над какой кнопкой находится мышка.
2. Сохранить информацию об этом.
3. Перетаскивание организовать в Update с помощью Input.