Кнопка Undo для раскраски в Unity
товарищи программисты! Уже неделю ломаю голову над задачей. Есть приложение - 3d раскраска. В нем для покраски объектов использую материалы из Resources, и скрипт использующий лучи (Ray). Задача такая - нужна кнопка отмены действия, нажав на которую цвет меняется на предыдущий. Объектов на сцене много, сцена как понимаете тоже не одна.
Что пробовал? Читал на форумах, что можно использовать лист/массив, и через скрипт добавлять в него примененные на сцене материалы. После этого при нажатии Undo спускаться по этому массиву вниз. Но моих знаний в c# не хватает, для меня это сложный код. Объектов много и я не понимаю как процесс окрашивания отслеживать. Создать для gameObject еще один массив? В общем запутался конкретно, выручайте.
P.S. все сценарии я с гореча удалил, даже показать свои дебри не могу(может и к лучшему))