Пока вы ждёте первый игровой дневник, я не сидел без дела. Сегодня был день большой чистки и оптимизации кода. Рассказываю, что изменилось под капотом проекта. Что было не так За несколько месяцев прототип оброс слоями кода: три разных системы подбора предметов, дублирующие рейкасты, физика, которая пересчитывала вес груза каждый кадр, и логи, которые писались в консоль в самых горячих местах. Всё это незаметно съедало FPS и мешало добавлять новые механики. Что переписали Взаимодействие с предметами теперь собрано в одну систему. Один рейкаст из камеры определяет, что перед игроком: дверь, посылка, машина. Больше нет трёх скриптов, которые спорили за внимание. Подсветка объектов работает по событию, а не через отдельный Update. Предмет в руках не летает за игроком, как в старом прототипе, а жёстко крепится к точке удержания. Это соответствует задумке: курьер берёт посылку руками, а не двигает её силой мысли. Машина Логика посадки и выхода, а также снятие показаний спидометра переехали внутрь CarController. Меньше ссылок в инспекторе, меньше шансов что-то забыть при настройке префаба. Заодно исправили старый баг: при торможении задние колёса продолжали получать крутящий момент, из-за чего машина дёргалась. Кузов грузовика Это была самая дорогая часть. Раньше система каждый кадр опрашивала физику через OverlapBox, чтобы понять, что лежит в кузове. Теперь это делается через триггер-зону: событие срабатывает только при входе или выходе объекта. Вес считается инкрементально. На слабых машинах это даст заметный прирост стабильности. Диалоги Поиск диалога по ID больше не перебирает весь список. Словарь в памяти, доступ за константное время. Приятный бонус для будущих сюжетных веток. Что удалили Из проекта ушли три файла, которые дублировали функционал и мешали развитию: старая система телекинеза, отдельный поставщик скорости для UI и компонент взаимодействия с машиной. Их обязанности распределены между оставшимися скриптами. Что дальше Код стал чище и предсказуемее. Это фундамент, на котором можно спокойно строить Срез 1: деревья, разрушенные здания, препятствия, NPC и дроны. Следующий дневник будет уже с картинками. #Разработка@se33inhateu