Разные сцены или всё в одном?

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

Разные сцены или всё в одном?

Сообщение NOVA 27 июн 2023, 19:26

Привет. Решил все сцены со всеми объектами объединить в одну. Меняется всё методом отключения. Замечено - тормоза. Походу все материалы и текстуры всех сцен сразу прогружаются в память смартфона. С каждой активацией и деактивацией новой сцены начинаются тормоза на самых простых материалах.
Вопрос. Если разделить всё на разные сцены с загрузкой оперативная память по материалам и текстурам будет сбрасываться?
Аватара пользователя
NOVA
Адепт
 
Сообщения: 1741
Зарегистрирован: 17 май 2011, 11:45
Откуда: Дядя Саша from Mother Russia

Re: Разные сцены или всё в одном?

Сообщение 1max1 27 июн 2023, 20:19

При смене сцены будут выгружаться неиспользуемые объекты из памяти через Resources.UnloadUnusedAssets. К объектам относятся как объекты сцены, так и созданные через код по типу new Texture2D и тд, на которых нет ссылок. Для предотвращения фризов надо загружать сцены через LoadSceneAsync.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Разные сцены или всё в одном?

Сообщение Alkos26Rus 28 июн 2023, 11:14

NOVA писал(а):Походу все материалы и текстуры всех сцен сразу прогружаются в память смартфона.

Ну если ты имитировал загрузку сцены простым включением\отключением объектов, то конечно все в память загружается при загрузке сцены, а фризы связанны с этой самой активацией\деактивацией
Аватара пользователя
Alkos26Rus
Адепт
 
Сообщения: 1642
Зарегистрирован: 26 ноя 2020, 17:52
Откуда: Москва

Re: Разные сцены или всё в одном?

Сообщение krauser0993 28 июн 2023, 14:11

Ну если ты имитировал загрузку сцены простым включением\отключением объектов, то конечно все в память загружается при загрузке сцены, а фризы связанны с этой самой активацией\деактивацией

даже изначально выключенные объекты жрут память. пришлось удалить со сцены, создаю префабы
krauser0993
UNITрон
 
Сообщения: 342
Зарегистрирован: 05 апр 2019, 15:17

Re: Разные сцены или всё в одном?

Сообщение Tolking 28 июн 2023, 15:46

Ну если на сцене есть ссылка на префаб, он тоже грузится в память...
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2716
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Разные сцены или всё в одном?

Сообщение krauser0993 28 июн 2023, 16:03

Tolking писал(а):Ну если на сцене есть ссылка на префаб, он тоже грузится в память...

верно, но гораздо меньше.
проверял на практике, сцена стала грузиться быстрее и перестало вылетать.
krauser0993
UNITрон
 
Сообщения: 342
Зарегистрирован: 05 апр 2019, 15:17

Re: Разные сцены или всё в одном?

Сообщение NOVA 28 июн 2023, 18:00

Спасибо за полезную инфу.
Аватара пользователя
NOVA
Адепт
 
Сообщения: 1741
Зарегистрирован: 17 май 2011, 11:45
Откуда: Дядя Саша from Mother Russia

Re: Разные сцены или всё в одном?

Сообщение Alkos26Rus 28 июн 2023, 18:59

krauser0993 писал(а):
Ну если ты имитировал загрузку сцены простым включением\отключением объектов, то конечно все в память загружается при загрузке сцены, а фризы связанны с этой самой активацией\деактивацией

даже изначально выключенные объекты жрут память. пришлось удалить со сцены, создаю префабы

Ну да выключенные жрут, а я про что. И прямые ссылки на префаб тоже жрут, то что ты создаешь префабы скорей всего ничего не меняет, нужно их создавать из ресурсов
Аватара пользователя
Alkos26Rus
Адепт
 
Сообщения: 1642
Зарегистрирован: 26 ноя 2020, 17:52
Откуда: Москва

Re: Разные сцены или всё в одном?

Сообщение waruiyume 28 июн 2023, 20:55

нужно их создавать из ресурсов

А потом удивляться: а чего это, на андроиде, пустая сцена с прелодером, на старте приложения, по пол минуты грузится.
У юнитеков в блоге написаны правила использование папки ресурсов, первое правило- не использовать.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Разные сцены или всё в одном?

Сообщение Saltant 28 июн 2023, 21:12

Используте Addressables и доставку контента удаленно. Все нормально работает при такой схеме.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2236
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Разные сцены или всё в одном?

Сообщение Alkos26Rus 28 июн 2023, 23:04

waruiyume писал(а):
нужно их создавать из ресурсов

А потом удивляться: а чего это, на андроиде, пустая сцена с прелодером, на старте приложения, по пол минуты грузится.
У юнитеков в блоге написаны правила использование папки ресурсов, первое правило- не использовать.

Да с чего это вдруг, я пользую загрузку ресурсов почти везде где можно и ничего. Понятно уровни только дурак будет грузить ресурсами, для этого асинхронная загрузка сцен есть. Но например у меня 100 окон в интерефейсе, у них там хренова гора картинок и что предлагаешь мне все их грузить на старте? Или проще загрузить окно по надобности? Или 100 юнитов разных видов, которые никогда на сцене не будут одновременно, ну подгрузил нужный и все, вчем проблема? Можно предзагрузку нужных ссылок при старте сцены сделать если тебя фризы будут смущать во время выполнения. Зато сцены загружаются быстро и никакого ненужного хлама в памяти.

А потом удивляться: а чего это, на андроиде, пустая сцена вылетает. По накидают хренову гору прямых ссылок
Аватара пользователя
Alkos26Rus
Адепт
 
Сообщения: 1642
Зарегистрирован: 26 ноя 2020, 17:52
Откуда: Москва

Re: Разные сцены или всё в одном?

Сообщение waruiyume 28 июн 2023, 23:35

Ну вам то лучше знать.
3.1. Best Practices for the Resources System
Don't use it.

https://learn.unity.com/tutorial/assets ... 002053b5a6
Пример из личного опыта:
Ассеты лежали в ресурсах, игра на андроиде грузилась в среднем секунд 25, причём мола висеть загрузочная картинка, а мог и вообще серый экран.
Закинули абсолютно всё, что было в ресурсах, в сцену лоби- игра грузится 5 секунд, причём не серый экран, а переход из прелодера в сцену лоби, со шкалой загрузки.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Разные сцены или всё в одном?

Сообщение Alkos26Rus 29 июн 2023, 10:22

waruiyume писал(а):Пример из личного опыта:
Ассеты лежали в ресурсах, игра на андроиде грузилась в среднем секунд 25, причём мола висеть загрузочная картинка, а мог и вообще серый экран.
Закинули абсолютно всё, что было в ресурсах, в сцену лоби- игра грузится 5 секунд, причём не серый экран, а переход из прелодера в сцену лоби, со шкалой загрузки.


Не знаю, я на старте время загрузки игры не замерял, возможно дольше. Но вот что точно я замерял это время загрузки между сценами и профайлерил память устройства. Как по мне лучше при запуске игры подождать дольше и потом при сменах сцен не ждать как подгружается весь ненужный хлам.

Не используйте его.
Эта сильная рекомендация сделана по нескольким причинам:
Использование папки «Ресурсы» затрудняет детальное управление памятью.
Неправильное использование папок Resources увеличит время запуска приложения и продолжительность сборки.
По мере увеличения количества папок ресурсов управление активами в этих папках становится очень сложным.
Система ресурсов снижает способность проекта доставлять пользовательский контент на определенные платформы и исключает возможность постепенного обновления контента.
Варианты AssetBundle — это основной инструмент Unity для настройки контента для каждого устройства.

Как по мне тут имеет место быть только последний пункт, все остальное - пустое. Что значит "Неправильное использование папок Resources"? Неправильное использование чего угодно приведет к проблемам, вывод используйте правильно. Дальше "становится очень сложным" , сложным для кого, для устройства или для меня, мне не сложно и как с эти быть? ". "затрудняет детальное управление памятью" - не знаю о чем тут вобще речь. У меня лично проблем с подгрузкой ресурсов нет, я с его помощью решил 2 проблемы, 1-долгая загрузка сцен, 2 - вылеты игры на некоторых устройствах с недостаточной памятью. И если это работает с чего я должен отказаться от использования Resources.
Аватара пользователя
Alkos26Rus
Адепт
 
Сообщения: 1642
Зарегистрирован: 26 ноя 2020, 17:52
Откуда: Москва

Re: Разные сцены или всё в одном?

Сообщение Woolf 04 июл 2023, 03:36

krauser0993 писал(а):
Ну если ты имитировал загрузку сцены простым включением\отключением объектов, то конечно все в память загружается при загрузке сцены, а фризы связанны с этой самой активацией\деактивацией

даже изначально выключенные объекты жрут память. пришлось удалить со сцены, создаю префабы


а еще лучше грузить через Addressables
https://docs.unity3d.com/Packages/com.u ... index.html
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Разные сцены или всё в одном?

Сообщение DbIMok 04 июл 2023, 04:51

Alkos26Rus писал(а):вывод используйте правильно

если вы знаете, как их использовать правильно, то опишите, каких правил вы придерживаетесь. что правильно, а чего делать нельзя
Alkos26Rus писал(а):У меня лично проблем с подгрузкой ресурсов нет

хорошо, а как дела с выгрузкой?
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 22