Вот решение: https://github.com/NoNameDeleted/BotsCollectors/tree/01f339eb8496d894bebad85fb3af69745a07bdb1
И вот отзыв по нему:
1) Удаляйте неиспользуемые using
2) UnitsSpawner - переменная Unit unit в функции SpawnUnit не нужна
3) HasFreeUnits - можно сократить public bool HasFreeUnits => _freeUnits.Count > 0; и кстати это свойство не используется в коде
4) ResourceStorage - лучше пишите методы событий Unity в порядке их вызова (Awake выше OnEnable, Start ниже OnEnable)
5) ResourceStorage - если класс называется хранилищем ресурсов, то он наверное должен выступать только складом, а не базой данных для бронирования ресурсов, для этого нужен отдельный класс
6) можно не делать явное сравнение с правдой, например (isAlive == true) или isAlive != false). Результатом сравнения будет всё тоже значение, поэтому эта операция не нужна
7) Unit стр 41 - вместо постоянного ручного перемещения объекта можно просто прекрепить его как дочерний объект и открепить когда довезём
8) Base
1. после { и перед } пустые строки не нужны
2. не мучайте код с помощью Update, пытайтесь отправить ботов за ресурсами только событийно в двух случаях, когда сканер событием оповестил что он обнаружил ресурсы (чтобы если все боты были без работы, то ничего не сломать), и в момент возвращения бота на базу, это сильно сократит количество вызовов метода GatherResouses
9) Builder - метод BuildBase ничего не делает, буквально, в нём кода нет
10) Player
1. поле _isBuildMode не используется
2. у всех членов класса должны быть явно указаны модификаторы доступа
3. переменные должны именоваться в стиле camelCase
Мои мысли: вобщем зря наверное я начал делать следующее задание (колонизация) которое является продолжением этого задания (боты сборщики) потому что я начал накидывать некоторые "намётки" и не доделал их, думая что проверяющий поймёт что они не являются частью задания и пропустит недоделанные части, но нет
Ну ничё, я уже почти доделал второе задание ещё не сдав первое
И кстати это самое последнее задание в блоке юнити и после него я могу с гордостью заявить что прошел юнити на 100%