Страница 1 из 1

Крашится игра на загрузке сцены. Help plz!

СообщениеДобавлено: 13 янв 2020, 00:44
VladikDEV
После публикации игры, некоторые пользователи начали жаловаться на то что игра крашится на загрузке сцены. Это происходит на небольшом количестве устройств и в основном это дешевые китайские телефоны и телефоны о которых я раньше никогда не слышал (BQ, Digma и тп). На остальных устройствах все работает как надо.
В проекте у меня есть загрузочная сцена в которой происходит загрузка остальных, и вот когда загрузка до ходила до 100% приложение вылетало либо просто зависало. Игра собрана под armv7 и arm64 с файлом .oob, разрешение на доступ к внутренней памяти пользователи перед этим всем дают.
Я даже купил один из этих девайсов чтобы посмотреть че происходит - xiaomi redmi go. В общем происходит ужасное 8-x - телефон полностью зависает и вообще ни на что не реагирует, даже на нажатие физических кнопок. Пока через несколько минут не закроет сам все. Логи по тегу Unity ничего толком не показывают, разве что по ним видно что выполнилось пару методов уже в следующей сцене (хотя перехода к ней вроде не случилось).
В проекте присутствуют: Firebase, Admob, Photon.
Вот логи, по которым у меня не получается толком понять что происходит, где ошибка. Единственное, что там заметил какой-то lowmemorykiller - значит ли это что дело в нехватке RAM?
https://pastebin.com/xxdWtb4A
код загрузки сцены
Синтаксис:
Используется csharp
        IEnumerator LoadScene(string name)
        {
            yield return StartCoroutine(GDPR_check());
            slider.gameObject.SetActive(true);
            yield return null;

            AsyncOperation asyncOperation = SceneManager.LoadSceneAsync(name, LoadSceneMode.Single);
            while (!asyncOperation.isDone)
            {
                float value = Mathf.Clamp01(asyncOperation.progress / .9f);
                slider.value = value;
                progressText.text = (value * 100).ToString("0") + "%";
                yield return null;
            }

        }
 


в общем прошу любых советов, помощи, т.к. не знаю вообще что делать

Re: Крашится игра на загрузке сцены. Help plz!

СообщениеДобавлено: 13 янв 2020, 03:57
1max1
значит ли это что дело в нехватке RAM?

Возможно. Поставь галку на development build + autoconnect profiler и посмотри в профайлере что там с памятью.

Re: Крашится игра на загрузке сцены. Help plz!

СообщениеДобавлено: 13 янв 2020, 05:35
VladikDEV
Изображение

Получается приложению для загрузки сцены необходимо >0.8 GB памяти?? :(
список текстур, материалов и тд - это то что есть вообще в проекте или ... неужели то, что сейчас в памяти? просто у меня текстур всего 380 на весь проект не наберется как мне кажется, да и они даже на диске столько места вряд ли занимают.

Re: Крашится игра на загрузке сцены. Help plz!

СообщениеДобавлено: 13 янв 2020, 09:12
Tolking
На диске в сжатом виде может и не занимают... Смотри что в консоли пишет перед повисанием.

Re: Крашится игра на загрузке сцены. Help plz!

СообщениеДобавлено: 13 янв 2020, 14:49
VladikDEV
лог:
https://pastebin.com/c13WhbVS

такс, ну значит дело 100% в памяти. может есть какие-то типичные или часто встречающиеся ошибки? я никогда еще не сталкивался просто с таким, и вообще не понимаю о каких 40к+ объектах идет речь? как это все оптимизировать и с чего вообще начать?

Re: Крашится игра на загрузке сцены. Help plz!

СообщениеДобавлено: 13 янв 2020, 15:25
1max1
Одних текстур там на 200мб, стоит задумать об их "зашакаливании"))

Re: Крашится игра на загрузке сцены. Help plz!

СообщениеДобавлено: 13 янв 2020, 18:47
VladikDEV
1max1 писал(а):Одних текстур там на 200мб, стоит задумать об их "зашакаливании"))


угу есть такое, с помощью этого прекрасного инструмента я наконец-то увидел что конкретно там находится, а находятся там все текстуры практически что есть в проекте, появились вопросы.

1. У меня на загружаемой сцене есть что-то вроде менеджера предметов, он содержит в себе список скриптабл обжектов, которые в себе хранят все характеристики оружия и в том числе информацию о скинах на оружие (чтобы игрок мог посмотреть в инвенторе на свои скинчики либо же просто какие-то характеристики в магазине). Ну соответственно в этих скриптабл обжектах есть ссылки на материалы этих самых скинов, я даже не мог подумать что они все возьмут и загрузят эти текстуры в оперативную память [curved_hands] . Это можно как-то исправить? либо изначально сам подход неправильный и так не делается, как тогда правильно это делать? сразу пришла мысль через Resources.Load загружать только тот скриптабл обжект что нужен в данный момент?
но тогда:
во-первых. везде написано что не стоит ничего класть в папку ресурсы.
во-вторых. все равно будут игроки с большим инвентарем и придется загрузить кучу этих СО и в рантайми это скорее всего вызовет неприятные фризы, и забьет снова всю память.

2. в общем как правильно обращаться с этим всем, чтобы в памяти не висели не используемые текстуры?

Изображение

Re: Крашится игра на загрузке сцены. Help plz!

СообщениеДобавлено: 13 янв 2020, 20:06
VladikDEV
Видимо то, что мне нужно - это Adressables

Re: Крашится игра на загрузке сцены. Help plz!

СообщениеДобавлено: 13 янв 2020, 20:09
DbIMok
VladikDEV писал(а):во-первых. везде написано что не стоит ничего класть в папку ресурсы.

можно положить в Resources только ScriptableObject(ы), а то на что он ссылается в других папках.

Re: Крашится игра на загрузке сцены. Help plz!

СообщениеДобавлено: 13 янв 2020, 21:21
Jarico
VladikDEV писал(а):Видимо то, что мне нужно - это Adressables


Можно просто поделить бандлами ресурсы..

К примеру при загрузке сцен загружать ресурсы для неё а после загрузки сцены выгружать ресурсы (загруженные ресурсы в памяти будут существовать пока сцена не выгружена) и так проделывать для каждого префаба

В Addressables там ресурсы держатся в памяти даже после уничтожения префаба... (Возможно я не до конца разобрался с Addressables)

Re: Крашится игра на загрузке сцены. Help plz!

СообщениеДобавлено: 14 янв 2020, 09:22
mastersmit
VladikDEV писал(а):во-первых. везде написано что не стоит ничего класть в папку ресурсы.

Почему?

Re: Крашится игра на загрузке сцены. Help plz!

СообщениеДобавлено: 14 янв 2020, 14:54
VladikDEV
mastersmit писал(а):
VladikDEV писал(а):во-первых. везде написано что не стоит ничего класть в папку ресурсы.

Почему?


https://learn.unity.com/tutorial/assets-resources-and-assetbundles#5c7f8528edbc2a002053b5a7

п. 3.1
Изображение

я может перегнул конечно насчет "везде", но точно видел еще что и на этом форуме писали где-то что лучше не использовать.