Оптимизация проекта в Unity. Что такое Profiler и для чего он нужен
В Unity есть инструмент, который может предоставить вам четкие данные о производительности вашего приложения, это Profiler, его целью является запись данных о производительности и облегчение процесса оптимизации вашего приложения.
Чтобы открыть Profiler, вам следует выбрать пункт Window > Analysis > Profiler
Profiler даёт вам информацию о том, сколько времени требуется вашей игре на отрисовку каждого кадра, разбивая каждый кадр на разделы: работа процессора, рендер, память, звук, физику,графический интерфейс и сеть.
Но полностью доверяться данным из редактора не стоит, ведь сама unity, да и открытые окна в ней могут влиять на отображаемые данные, по этой причине следует хоть иногда проводить тесты с включенным профилированием на вашей целевой платформе.
Unity также позволяет получить информацию о производительности вашего приложения вне редактора, но стоит всегда держать в уме, что профайлер немного сказывается на производительности. Чтобы увеличить точность показателей производительности, нужно создать сборку для необходимой платформы и запустить игру.
Чтобы запустить профайлер для вашей игры, необходимо в Build Settings включить параметры Development Build и Autoconnect Profiler. При запуске приложения профайлер будет запускаться автоматически. Подключить профайлер также можно в Profiler Controls через выпадающий списокв редакторе.
Важно! Если вы создаете сборку под Android, то в Edit > Project Settings > Editor укажите Any Device
Когда ваша сборка будет готова, не закрывая окно Unity Profiler откройте свою игру. Теперь Unity будет автоматически отображать данные о производительности текущей сборке в окне профайлера.
Deep Profile
В этом режиме записываются вызовы каждого метода, что позволяет четко определить, в какой части кода ваш скрипт потребляет больше всего ресурсов.
Но учтите, что глубокое профилирование требует больших ресурсов и использует большое количество памяти. Это приводит к тому, что ваше приложение работает значительно медленнее во время профилирования. Deep Profiling лучше подходит для небольших игр с простыми скриптами.
Для того, чтобы запустить приложение в этом режиме, вам следует запускать его через консоль с указанием определенных аргументов.
Для включения этого режима на ПК используйте аргумент командной строки -deepprofiling.
Для включения этого режима на Android используйте аргумент командной строки adb.
Например:
~$ adb shell am start -n com.company.game/com.unity3d.player.UnityPlayerActivity -e 'unity' '-deepprofiling'
Для запуска в редакторе достаточно нажать кнопку в окне Profiler
Frame Debugger
Frame Debugger позволяет нам остановить игру на определенном кадре и просмотреть отдельные вызовы отрисовки, которые используются при построении этого кадра. Помимо просмотра,отладчик также дает возможность пошагового выполнения, что дает нам возможность посмотреть, как выстраивается сцена.
Открывается отладчик кадров через Window > Analysis > Frame Debugger
При щелчке по элементу на сцене вы сможете увидеть то, в каком виде была модель до вызова отрисовки
Как вы могли заметить, в верхней части есть определенное число из 19. Это порядок отрисовки,стрелочками перемещаясь от 0 до конца (это может быть и не 19) вы можете посмотреть, как выстраивается ваша сцена.
Мы с вами разобрались с одним из основных инструментов, которые позволяют нам определить,где же с нашим приложением что-то не так. Это только первая часть серии статей по оптимизации,в рамках которых мы разберем подробнее Deep Profile, но и другие интересные инструменты.
7 курсов бесплатно
Начните карьеру разработчика игр бесплатно!
Вы также можете написать нам сами на почту: romaan27@gmail.com
Вы также можете написать нам сами на почту: romaan27@gmail.com
unity
- 11 проектов в портфолио
- Гарантия трудоустройства
- Поддержка менторов
Р7500
7500
В месяц