Привет, Владислав.Мои мысли:
1) private void Scann() скан пишется с одной буквой н. )
2) Вынеси скан в отдельную сущность.
3) У ресурса не должно быть поля private bool _isFree = true; сделай класс который хранит найденные ресурсы и выдает только те, которые еще никому не назначил, то есть будет две коллекции, в одной будут храниться вообще все ресурсы, в другой те, которые еще никому не отдали.
4) public void PickUpByUnit(Unit unit) ресурс не должен знать о юните.
5) обычные поля отделяются от сериализованных пустой строкой.
6) Выдели отдельный класс по управлению юнитами и пускай база им владеет и работает с его методами. )
Вобщем я всё забыл за эти пол года... Как же быстро время летит как будто максимум месяц прошел
Удивительно что технически всё работает. Хоть думать не разучился))
По ошибкам - я просто всё свалил в несколько скриптов, потому что так проще, а по правилам, конечно надо каждый функционал выносить в отдельный компонент