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/ |