Unity3D Load Level асинхронный прогресс странное поведение
Я пытаюсь загрузить сцену асинхронно, чтобы у меня был хороший индикатор выполнения, и я обнаружил, что возвращаемый AsyncOperation.progress останавливается на 0,9. У меня нет проблем с этим, но происходит то, что после этого загрузка сцены занимает до 50 секунд, и это не отражается на прогрессе. После удаления некоторых объектов я обнаружил, что существует 1 (основной объект сцены), который вызывает эту задержку.
У меня вопрос, есть ли способ загрузить этот объект в первые 90% нагрузки (что сейчас происходит очень быстро - 1 с)?
заранее спасибо
2 ответа
Так что, похоже, все дело в веществах, которые я использовал. Это действительно странно для меня, потому что я тщательно проверяю их все как "испечь и выбросить вещество", которое, кажется, ничего не делает. После запекания всех текстур и перехода от вещества к текстуре в материале загрузка снизилась с 42 до 1 с.
Если этот GameObject находится внутри сцены, он загружается вместе со сценой. Проблема, с которой вы столкнулись, связана со всей логикой сценария внутри сцены. Поток загрузки фактически завершен, но сценарии, создание экземпляров и т. Д. Занимают все ресурсы устройства и выглядят застрявшими на 90%.
Я думаю, что для ее решения вам следует отложить выполнение всех сценариев методами Awake или Start. Это должно помочь, но все равно все время, необходимое на конкретном устройстве для выполнения сценариев, будет занимать весь процессор и снова будет зависать.