Как я переезжал с Unity 2022 на Unity 6
Всем привет! Давно не отчитывался, много рутины делаю, поэтому коплю инфо для отчета, но этой поделюсь)
Сегодня хочу поделиться историей в духе "работает — не трогай, но я всё равно тронул".Наш проект (хардкорная кроссплатформенная RPG с кучей UI, и базой в 500+ скриптов уже на ранней стадии) успешно мигрировал с насиженного места в Unity 2022 на свежую Unity 6.3 LTS.
Спойлер: всё закончилось хорошо, игра стала работать заметно шустрее, но без пары седых волос не обошлось.
Рассказываю, как это было, какие грабли я собрал и почему "шестёрка" — это топ.
Зачем вообще было прыгать выше головы? Сидеть на версии 2022 года было комфортно. Она стабильная, проверенная временем. Но триггером к переезду стали две вещи. Во-первых, Unity подняли лимит для бесплатной лицензии и (о боги!) официально разрешили убирать заставку "Made with Unity". Но фишка работает только начиная с Unity 6. Во-вторых, кроссплатформенной RPG с солянкой из PvP, осад и кучей циферок урона на экране критически важна производительность UI, а в Unity 6 под капотом переработали работу с канвасами и завезли оптимизированный .НЕТ.
Делаем бэкап папки и жмём Change Version. Ииии - "Бл**ь, там жесть в консоли!" или Знакомство с Safe Mode :D
Первый запуск: "В проекте ошибки, желаете войти в Safe Mode?". С непривычки кажется, что движок только что перемолол твои фичи в труху, а ссылки на скрипты в инспекторе сейчас дружно превратятся в Миссинги). На самом деле — нет. Сейв мод в Юнити 6 — это безопасный режим. Движок просто блокирует загрузку сцен и префабов, оставляя открытым только окно кода и консоли с ошибками. Ваши связи на объектах замораживаются в исходном состоянии. Почините код и юнити сама выйдет из безопасного режима, и всё откроется.В моём случае из 500+ скриптов покраснел всего один, где жила архитектура. В Unity 6 появился новый встроенный тип данных Awaitable, который вступил в конфликт со старой сигнатурой интерфейса. Пять сек — и вуаля! Проект пересобрался, и Safe Mode закрылся.
Помогли одним — запутали других.
Когда редактор наконец открылся, меня ждал графический кэш-глюк: в режиме редактирования поплыла верстка, хотя в Play всё ок.Лечится Банально! Переключением сцен. Но больше всего меня выбесили разработчики TMP. Решил я настроить текстовую подсказку для экрана конца боя, чтобы она на всех языках выстраивалась в одну строчку без переносов. Ищу в инспекторе привычный переключатель Disabled в строке Text Wrapping Mode. А его... нет. Оказывается, ребята решили помочь разработчикам и переименовали его в стиле веб-верстки — теперь это называется No Wrap :(. И таких минорных переименований по движку хватает.
И каков итог? После того как осела пыль от первого импорта, а плагины сгенерировали новые модули совместимости, я запустил проект и... обалдел.
Unity 6 реально заметно шустрее! ООо Майй КАййФФФ! :D
Редактор летает: компиляция происходит почти мгновенно, и не заставляет залипать по полминуты. UI стал отзывчивее: Пересчет геометрии при обновлении бесконечных счётчиков больше не вешает микрофризы. И самое главное — в настройках галочка Show Splash Screen была снята :D. Теперь при запуске игры сразу стартует наш чистый экран, куда мы со спокойной душой повесим логотип студии (или кастомное послание тестерам, чтобы жизнь мёдом не казалась).
Если вы всё ещё сидите на 2022 и боитесь обновляться — делайте бэкап и пробуйте. А профит по FPS и скорости разработки того стоит!










