Unreal Engine 4
http://uengine.ru/forum/

Оптимизация blueprint кода
http://uengine.ru/forum/viewtopic.php?f=3&t=75136
Страница 1 из 1

Автор:  Alexander2002 [ 24 мар 2020, 10:53 ]
Заголовок сообщения:  Оптимизация blueprint кода

Здравствуйте. Никогда не думал, что столкнусь с проблемой оптимизации из-за кода, а не из-за графики (ничего сложного в проекте нет) или из-за большого количества персонажей на сцене (60 actor, в зоне видимости не более 10, обычно вообще 2-3). В общем проблема следующая: при нажатии на кнопку запускается цикл for each loop для массива static mesh component. В цикле идут подряд следующие функции: branch (visibility component), branch (равен ли конкретному типу static mesh componenta), branch (ищем компонент в другом массиве с функцией find, выводим эту функцию через get из булеевого массива и отправляем в branch), далее функция spawn actor, затем ещё одна spawn actor, затем достаём переменную из первого actora и сохраняем в неё стрелка (pawn переменная), затем выводится функция set array elem для булевого массива и после устанавливается set timer by event на одну секунду для события в виде цикла for each loop для булевого массива с set array elem для каждого элемента. Далее всё выше изложенное повторяется для второго, третьего, четвёртого и последующих элементов массива static mesh component.
Если нажимать кнопку стрельбы (это код для выстрела), то при наличии всего четырёх элементов в массиве заметны тормоза на телефоне (Sony Xperia XA1 Plus), а при девяти - десяти начинает (правда менее заметно) тормозить компьютер при тестировании в редакторе.
В общем код выше должен при нажатии кнопки атаки перебирать все пушки игрока и если они могут выстрелить (не повреждены и время перезарядки прошло), то производить выстрел (создавать actor пуля и создавать actor с particle component с взрывом) и устанавливать таймер на перезарядку.
Почему этот код тормозит и как его можно ускорить?

P. S. Фотографию кода прикрепить не могу, так как на кнопку "Загрузить картинку" сайт не реагирует, хотя блокировщик рекламы в браузере (писали, что в нём может быть причина) даже не установлен.

Закинул ссылки на сайт. Вот ссылки:
https://blueprintue.com/blueprint/yozfowhg/
https://blueprintue.com/blueprint/5-0xogc9/
Первая на основной код, вторая на подкод (macro функцию). Теперь код наглядно виден (правда все переменные отметились синим, но думаю понятно, что от location идёт жёлтая vector-переменная, а от rotation - сиреневая).

Автор:  Eamirus [ 24 мар 2020, 11:56 ]
Заголовок сообщения: 

https://blueprintue.com/- можно сюда закинуть свои ноды через ctrl-c + ctrl-v.
Я сейчас как минимум насчитал около 4 циклов в одном, то есть около 16 проходов + спавн, что является тяжелой функцией. Если зальешь нормально ноды, могу посмотреть и подсказать.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/