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

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

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

Или есть способы ускорить?

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

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

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

СообщениеДобавлено: 19 янв 2023, 03:09
1max1
Можно отключить domain reload и scene reload, но могут посыпаться ошибки.
https://docs.unity3d.com/Manual/DomainReloading.html

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

СообщениеДобавлено: 19 янв 2023, 13:17
Visochestvo
хоть "возвращайся в 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" при воспроизведения проекта?

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

СообщениеДобавлено: 19 янв 2023, 13:41
1max1
Включи профайлер в дип может, может там покажет что-то.

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

СообщениеДобавлено: 19 янв 2023, 14:22
Visochestvo
1max1 писал(а):Включи профайлер в дип может, может там покажет что-то.

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

собственно Instantiate в начале сцены и тормозит загрузку. Как можно еще выполнить такую операцию, что бы объект появился на сцене при загрузке сцены?

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

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

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

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

Да пришлось сделать заранее в сцене загрузку префабов.

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

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

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

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

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

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

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

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

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

СообщениеДобавлено: 20 янв 2023, 18:47
Saltant
Visochestvo писал(а):Итог с 1.30 мин до 15 сек сократил. [curved_hands]

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

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

СообщениеДобавлено: 20 янв 2023, 18:59
Visochestvo
Saltant писал(а):
Visochestvo писал(а):Итог с 1.30 мин до 15 сек сократил. [curved_hands]

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

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

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

СообщениеДобавлено: 20 янв 2023, 19:07
Saltant
Visochestvo писал(а):Возможно конечно переделаю под partical.

Так и надо, делай партиклы они там ничо не грузят по производительности и работают считай из коробки без всяких пулов. Пулы на пули делать это дичь, игрок её все равно не увидит по сути, инстантиировать прифаб для каждой пули, такое себе.