Как ускорить загрузку Play?

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

Как ускорить загрузку Play?

Сообщение Visochestvo 19 янв 2023, 01:33

Всем привет, очень долго запускается сцена, компилируется по 1-2 минуты. При давних версиях (2018г) unity такого не было, чем новее версия тем дольше компилируется. Или у меня ПК слабоват уже?
Скрытый текст:
Razen 1700x
16Gb Ram
SSD m.2
3060 ti

Или есть способы ускорить?
Visochestvo
UNIверсал
 
Сообщения: 453
Зарегистрирован: 01 фев 2014, 14:11

Re: Как ускорить загрузку Play?

Сообщение waruiyume 19 янв 2023, 02:50

Попробуйте удалить папку "library" с выключенным редактором, после запуска проекта будет долгий импорт всех ресурсов.
Может что-то из этой темы поможет https://forum.unity.com/threads/long-wa ... ne.973329/
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Как ускорить загрузку Play?

Сообщение 1max1 19 янв 2023, 03:09

Можно отключить domain reload и scene reload, но могут посыпаться ошибки.
https://docs.unity3d.com/Manual/DomainReloading.html
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Как ускорить загрузку Play?

Сообщение Visochestvo 19 янв 2023, 13:17

хоть "возвращайся в 2016г - 2018г" без "Render Pipeline, Shader Graph и новых фишек" за то все быстро запускалось.

waruiyume писал(а):Попробуйте удалить папку "library" с выключенным редактором, после запуска проекта будет долгий импорт всех ресурсов.
Может что-то из этой темы поможет https://forum.unity.com/threads/long-wa ... ne.973329/

не помогло =(
Изображение
1max1 писал(а):Можно отключить domain reload и scene reload, но могут посыпаться ошибки.
https://docs.unity3d.com/Manual/DomainReloading.html

так же

Пустая сцена (новая или с выключенными объектами) в этом проекте запускается секунды 3, сильно ли замедляет "Resources.Load" при воспроизведения проекта?
Visochestvo
UNIверсал
 
Сообщения: 453
Зарегистрирован: 01 фев 2014, 14:11

Re: Как ускорить загрузку Play?

Сообщение 1max1 19 янв 2023, 13:41

Включи профайлер в дип может, может там покажет что-то.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Как ускорить загрузку Play?

Сообщение Visochestvo 19 янв 2023, 14:22

1max1 писал(а):Включи профайлер в дип может, может там покажет что-то.

Я нашел причину в одном из скриптов, сократилось с 1:30 минут до 12-14 секунд
Синтаксис:
Используется csharp
void Start()
{
...
weapons[index].gameObject = Instantiate(Resources.Load(path)) as GameObject;
}

собственно Instantiate в начале сцены и тормозит загрузку. Как можно еще выполнить такую операцию, что бы объект появился на сцене при загрузке сцены?
Visochestvo
UNIверсал
 
Сообщения: 453
Зарегистрирован: 01 фев 2014, 14:11

Re: Как ускорить загрузку Play?

Сообщение 1max1 19 янв 2023, 15:01

Можно только заранее перекинуть на сцену, но если оно там где-то в разный местах не динамически генерит. Еще может можно было бы растянуть в корутине на несколько фреймов, но я не знаю как оно там реализовано.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Как ускорить загрузку Play?

Сообщение Visochestvo 19 янв 2023, 16:46

1max1 писал(а):Можно только заранее перекинуть на сцену, но если оно там где-то в разный местах не динамически генерит. Еще может можно было бы растянуть в корутине на несколько фреймов, но я не знаю как оно там реализовано.

Да пришлось сделать заранее в сцене загрузку префабов.
Visochestvo
UNIверсал
 
Сообщения: 453
Зарегистрирован: 01 фев 2014, 14:11

Re: Как ускорить загрузку Play?

Сообщение Visochestvo 19 янв 2023, 18:57

Как теперь удалять объекты из сцены при перезагрузке-сброса скрипта?
через void Reset() { пуск цикла... DestroyImmediate(weapons[index].gameObject); } не выходит, скорее всего он сначала очищает массив, а потом уже ищет пытается удалить объект "index", когда массив уже ранен 0;
вот если удалять скрипт с объекта через void OnDestroy() { if(Application.isEditor) { пуск цикл... DestroyImmediate(weapons[index].gameObject); } } все нормально
Visochestvo
UNIверсал
 
Сообщения: 453
Зарегистрирован: 01 фев 2014, 14:11

Re: Как ускорить загрузку Play?

Сообщение 1max1 19 янв 2023, 19:15

Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Как ускорить загрузку Play?

Сообщение Visochestvo 19 янв 2023, 23:19

Все-равно не нашел почему замедляется загрузка. Понял что в void Start() Instantiate(Resources.Load("Prefabs/...."), transform.position, transform.rotation); замедляет сильно запуск сцены, хотя создал и создал таким образом 1000 префабов и там все быстро. Возможно версия Unity такая.
Visochestvo
UNIверсал
 
Сообщения: 453
Зарегистрирован: 01 фев 2014, 14:11

Re: Как ускорить загрузку Play?

Сообщение Visochestvo 20 янв 2023, 18:17

Нашел проблему, при Instantiate одного объекта (10 шт), в котором есть скрипт который тоже создает Instantiate там стояло число 500 по ошибке. итого получалось 5000 префабов. Я их не замечал т.к они прознанные на сцене и родители объектов спрятаны были. Итог с 1.30 мин до 15 сек сократил. [curved_hands]
Visochestvo
UNIверсал
 
Сообщения: 453
Зарегистрирован: 01 фев 2014, 14:11

Re: Как ускорить загрузку Play?

Сообщение Saltant 20 янв 2023, 18:47

Visochestvo писал(а):Итог с 1.30 мин до 15 сек сократил. [curved_hands]

Те они ваще нужны то эти объекты при кнопке Play? мож ты их и не юзаешь, тыж плей врубаешь чтоб потестить что то а не поиграть в игру :D Если не юзаешь, просто директиву процессора добавь какую нить, типа debug и тестируй куски которые тебе нада, если тебе нада какую нить 10 сцену протестить, тыж не будешь включать плей чтоб с 1 сцены до 10 протыкать, кек.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2234
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Как ускорить загрузку Play?

Сообщение Visochestvo 20 янв 2023, 18:59

Saltant писал(а):
Visochestvo писал(а):Итог с 1.30 мин до 15 сек сократил. [curved_hands]

Те они ваще нужны то эти объекты при кнопке Play? мож ты их и не юзаешь, тыж плей врубаешь чтоб потестить что то а не поиграть в игру :D Если не юзаешь, просто директиву процессора добавь какую нить, типа debug и тестируй куски которые тебе нада, если тебе нада какую нить 10 сцену протестить, тыж не будешь включать плей чтоб с 1 сцены до 10 протыкать, кек.

обычно так и делаю, отключаю большую часть сцены, включаю то что нужно. Просто забыл что там тестовый скрипт был, тестировал пул от минигана, назначил число из головы примерно 500 и забыл надолго.
Кстати как лучше организовать пул пуль.
1. Создать пул для каждого оружия.
2. Создать общий пул для всех оружий.
И какое количество пуль тут сложно насчитать. Скорострельность у всех разная и стволов тоже не рассчитать это рандом. Как бы не получилось что все пули будут задействованы, а какой то ствол пытается еще пустить пулю.
пули нужны для трайл рендера, они без физики. Возможно конечно переделаю под partical.
Visochestvo
UNIверсал
 
Сообщения: 453
Зарегистрирован: 01 фев 2014, 14:11

Re: Как ускорить загрузку Play?

Сообщение Saltant 20 янв 2023, 19:07

Visochestvo писал(а):Возможно конечно переделаю под partical.

Так и надо, делай партиклы они там ничо не грузят по производительности и работают считай из коробки без всяких пулов. Пулы на пули делать это дичь, игрок её все равно не увидит по сути, инстантиировать прифаб для каждой пули, такое себе.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2234
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт


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

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

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