#unity3d
#unity3d
Вопрос:
Моя сцена нормально загружается в редакторе, возможно, в 50% случаев. Другая половина времени Unity перестает отвечать, и мне приходится завершать работу приложения. Это также тот случай, когда я заставляю сцену перезагружаться, когда редактор уже находится в режиме воспроизведения. Насколько я могу судить, журнал не дает никакой полезной информации, но я опубликовал ее ниже. Что еще я могу сделать, чтобы понять, почему моя сцена падает?
Перезагрузка сборок для режима воспроизведения.
Запустите MonoManager ReloadAssembly
инициализируя Unity.PackageManager (PackageManager) v2018.3.9 для Unity v2018.3.9f1
Регистрация модулей поддержки платформы:
Зарегистрированные модули поддержки платформы: 0.0554295сек.
Родное расширение для Android target не найдено
Родное расширение для iOS target не найдено
Родное расширение для OSXStandalone target не найдено
Обновление родных плагинов, совместимых для редактора за 1.64 мс, найдено 2 плагина.
Предварительная загрузка 1 встроенного плагина для редактора за 1.15 мс.
Mono: успешно перезагрузил сборку
— Завершена перезагрузка, через 1.489 секунд
модули платформы уже инициализированы, пропуская
загрузку сцены ‘Temp /__Backupscenes / 0.резервное копирование’ время: 0.616473 мс
Комментарии:
1. Это происходит со всеми сценами в вашем проекте? Или с некоторыми конкретными? Вы пытались создать пустой и проверить, произошло ли это? Вы можете проверить, есть ли в сцене сломанный сборный элемент, это приводит к прерыванию загрузки сцены в редакторе.
2. Это только моя основная игровая сцена (это небольшая игра на 1 сцену). Сцена предварительной загрузки работает нормально. Игра работает нормально 50% времени в редакторе и 100% времени после установки на мой iPhone, поэтому у меня возникли проблемы с поиском проблемы
Ответ №1:
Я выяснил, какой вызов нарушал работу редактора, запустив игру несколько раз, пока не произошло замораживание, затем используя Visual Studio (MonoDevelop также будет работать) и перейдя к Run -> Attach to Process, а затем сделав паузу, чтобы определить последний выполненный вызов. В моем случае это был цикл while, который иногда мог вызвать переполнение из-за неудачной рандомизации.