2015-12-14 2 views
2

Я пытаюсь загрузить сцену асинхронно, поэтому у меня может быть хороший индикатор выполнения, и я обнаружил, что возвращаемый AsyncOperation.progress останавливается на 0,9. У меня нет проблем с этим, но то, что происходит, - это то, что после этого на загрузку сцены требуется до 50 секунд, и это не показывает прогресс. После удаления некоторых объектов я обнаружил, что есть 1 (основной объект сцены), вызывающий эту задержку.Unity3D Уровень загрузки async работает странное поведение

Мой вопрос: есть ли какой-либо способ загрузить этот объект в первые 90% нагрузки (что происходит супер быстро прямо сейчас - 1 с)?

Заранее спасибо

ответ

1

Итак, похоже, что все это касается веществ, которые я использовал. Это действительно странно для меня, потому что я объясняю их все как «выпекать и отбрасывать вещество», которое, кажется, ничего не делает. После выпечки всех текстур и перехода от вещества к текстуре в материале загрузка снизилась с 42 с до 1 с

2

Если GameObject находится внутри сцены, он будет загружен со сценой. У вас есть проблема со всей скриптовой логикой внутри сцены. Фактически загрузочный поток завершен, но скрипты, instantieting и т. Д. Принимают все ресурсы устройства, и похоже, что он застрял на 90%.

Чтобы решить эту проблему, я думаю, вам следует отложить выполнение всех сценариев при использовании методов Awake или Start. Это должно помочь, но все-таки все время, необходимое на конкретное устройство для выполнения сценариев, займет весь процессор и будет выглядеть снова застрявшим.

+0

Итак, все это время для создания экземпляра этого конкретного объекта? –

+0

Я думаю, что это не instatiating (это делается в асинхронном потоке), а выполнение его скриптов. –

+0

У этого объекта нет скриптов. И когда я удаляю его со сцены, он загружается довольно быстро - 2s в целом –

Смежные вопросы