47 подписчиков
Быстрее запускать Play Mode в Unity
https://www.youtube.com/watch?v=ThoWjnNR6F4 (советую смотреть с английскими субтитрами, а я напишу короткий перевод сути)
Все сталкиваются с тем, что Play Mode бывает грузится вечно. И в редакторе есть замечательная настройка Enter Play Mode Options. Настройку можно найти в Project Settings->Editor->Enter Play Mode Settings. Включив её Play Mode начнёт запускаться меньше чем за секунду, но за счёт чего и какие у этого проблемы? По умолчанию в этой настройке выключены две вещи. Reload Domain и Reload Scene.
Reload Domain — это перезагрузка скриптинг системы C#. Делается это для того, чтобы сэмулировать первый запуск приложения. Она происходит (даже при отключенной настройке) так же при рекомпиляции скриптов. То есть включив её вы не вырубите Reload на совсем. Но тут нужно понимать сайд эффекты. Если вы используете статик переменные или же многопоточность, то без перезагрузки C# системы они не переинициализируются. Лучше конечно не юзать такую статику (с важным состоянием), но есть и воркэраунд через аттрибут RuntimeInitializeOnLoadMethod. Его можно посмотреть в видео.
Reload Scene — это перезагрузка сцены. То есть все объекты будут удалены и созданы заново. Это почти не создаёт проблем. Это создаст проблемы если вы юзаете [ExecuteInEditMode] и [ExecuteAlways] так как не будет вызовов OnDestroy и Awake, и это может что-то сломать.
Так же в общем это может сломать какие-то ассеты, которые не поддерживают эту настройку. И понятна причина почему она не включена по умолчанию. Но если все эти проблемы для вас не важны, то вы можете сильно ускорить вашу разработку, чтобы не ждать PlayMode по несколько секунд :)
1 минута
19 декабря 2022