Эффективная разработка на движке Unity: обзор полезных инструментов
www.samag.ru
Журнал «БИТ. Бизнес&Информационные технологии»      
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Сетевая инфраструктура  

Как удаленная работа меняет подход к сетевой инфраструктуре?

С увеличением числа сотрудников, работающих из дома, организации сталкиваются с необходимостью создания

 Читать далее...

Мониторинг  

Какой мониторинг нужен сегодня?

По мнению экспертов ГК InfoWatch, действия сотрудников – самая распространенная причина инцидентов

 Читать далее...

Мобильные приложения  

Искусственный интеллект в мобильных приложениях: возможности и перспективы

Обзор современных применений ИИ в мобильных приложениях, анализ перспектив развития этой технологии,

 Читать далее...

ИТ-образование  

Как сделать ИТ-образование эффективным?

Эксперты ИТ-отрасли отвечают на вопросы «СА». Обсуждаем ключевые аспекты для улучшения образовательных

 Читать далее...

Work-life balance  

Как айтишнику найти баланс между работой и личной жизнью?

Обсуждаем инструменты для эффективного управления временем, снижения уровня стресса и достижения гармонии. На

 Читать далее...

Книжная полка  

Всё самое нужное – под одной обложкой

Отличительная черта книжных новинок, выпущенных недавно издательством «БХВ» – это их универсальность. Не просто

 Читать далее...

ИТ-инфраструктура  

Системы мониторинга ИТ-инфраструктуры-2025

Без мониторинга ИТ-инфраструктуры не обходится ни одна компания, хотя бы потому, что

 Читать далее...

Открытое ПО  

Безопасность Open Source: рискуем или контролируем?

Компания «Кросс технолоджис» изучила, как используется ПО с открытым кодом в компаниях

 Читать далее...

Работа с нейросетью  

Скажи, есть ли у тебя AI, и я скажу, кто ты

Недавно сервис по поиску работы SuperJob выяснил, что каждый второй россиянин уже

 Читать далее...

Опрос  

Защита личных и клиентских данных: как мошенники используют ИИ и как защититься?

По данным RED Security, общее число кибератак на российские компании в 2024

 Читать далее...

Опрос  

Облачные инструменты для разработчиков

Эксперты ИТ-отрасли отвечают на вопросы «Системного администратора» > Как с помощью облака сделать

 Читать далее...

Опрос  

Рынок мобильных приложений: что будет актуальным в 2025 году?

Эксперты ИТ-отрасли отвечают на вопросы «Системного администратора» > Ваши прогнозы: чего ожидать от

 Читать далее...

Рынок труда  

Как успешно пройти все этапы собеседования на ИТ-должность?

По оценкам государства, дефицит ИТ-специалистов составляет от 740 тысяч до 1 миллиона

 Читать далее...

Исследование  

Как искусственный интеллект меняет банковское обслуживание: от чат-ботов до автоматического одобрения кредитов

Искусственный интеллект (AI) всё глубже проникает в банковский сектор, меняя способы обслуживания

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 8042
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 8305
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 5650
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 3561
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 4356
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 4355
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6914
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3716
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3981
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7885
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 11237
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12966
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 14720
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9674
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7628
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5917
Комментарии: 4
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 5097
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3942
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3632
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3861
Комментарии: 1
Рецензия на книгу «MongoDB в действии»

 Читать далее...

Друзья сайта  

 Эффективная разработка на движке Unity: обзор полезных инструментов

Просмотров: 36


Юрий Смоленский

 

Эффективная разработка на движке Unity:
обзор полезных инструментов

Компания Unity со своим движком Unity Engine, на котором сторонние разработчики могут делать собственные игры, стала титаном мира гейм-dev. Почти половина из ТОП-50 игр в Steam разработана на этой платформе. В данной статье Игорь Фролов, опытный Unity-разработчик, создавший игры с миллионными аудиториями, рассказал об особенностях использования некоторых важных для своей работы инструментов.

 

Скорость и эффективность разработки на Unity Engine может быть кратно увеличена благодаря дополнительным инструментам, которые доступны на платформе игроделам. Так, полезные инструменты разработчика на Unity чаще всего представлены платными плагинами к среде разработки Unity Engine.


Инструменты повышения эффективности разработки на Unity: редактор

В экосистеме разработки Unity поддерживается возможность добавлять пользовательские окна редактора, так как стандартная компоновка такого окна не подойдет для решения всех задач разработки. Инструменты, нацеленные на улучшение существующих окон редактора и на создание собственных: 

  • Odin Inspector: один из самых популярных плагинов для Unity. С его помощью можно существенно кастомизировать интерфейс инспектора вашего компонента, не прибегая к написанию Editor-кода. Добавляя атрибуты к полям вашего класса, можно группировать элементы в инспекторе, скрывать или показывать поля по условиям, выводить кнопки и большие таблицы, делать многое другое. Также плагин позволяет сериализовать неподдерживаемые по умолчанию типы, такие как Dictionary или абстрактные классы. Впрочем, с этим плагином нужно быть аккуратным, так как разросшиеся кастомные инспекторы от Odin могут быть очень прожорливы по ресурсам;
  • NaughtyAttributes: бесплатная альтернатива Odin Inspector, но имеет куда меньше возможностей по кастомизации и сериализации (трансформация данных из объекта в более простые типы, - прим. ред.);
  • vFolders 2, vInspector 2, vHierrarhy 2: семейство решений для расширения возможностей стандартных окон редактора Unity. vFolders 2 – кастомные иконки, цвета и фильтры для удобной работы с папками в Project Window. vInspector 2 – улучшенный инспектор с кастомными кнопками, быстрой сериализацией и расширенной визуализацией данных. vHierarchy 2 – цвета, иконки и быстрые действия для удобной навигации в Hierarchy Window.

Подведем итоги: Odin Inspector покрывает большую часть потребностей, которые могут возникнуть в вопросе окон редактора, но является платным. NaughtyAttributes включает меньше опций, но является бесплатным. В определенных ситуациях могут подойти vFolders 2, vInspector 2 или vHierrarhy 2 с хорошим, но сравнительно узким функционалом.


Инструменты повышения эффективности разработки на Unity: внедрение зависимостей

Dependency Injection (DI) – это шаблон проектирования, который упрощает управление зависимостями в коде. Вместо того, чтобы объекты создавали зависимости самостоятельно, они получают их извне. Тем самым удается избежать «распухания» методов самого класса. DI – неотъемлемая часть абсолютно любого IT-проекта, вне зависимости от того, на каком движке/языке или фреймворке он написан. Есть следующие полезные инструменты управления зависимостями на Unity: 

  • Zenject: один из самых популярных DI-фреймворков. Как и любой похожий фреймворк, он позволяет «прокидывать» зависимости через конструкторы, методы и поля. Также он «из коробки» поддерживает «фабрики» (речь идет о паттерне разработки «Фабрика», - прим. ред.) и пулинг объектов. Имеет большое комьюнити и развернутую документацию. На данный момент поддержка Zenject’a прекращена. Его основной альтернативой стал Extenject, который является самым полярным форком (версией, – прим. ред.) Zenject. Он сохраняет весь функционал Zenject, но получает обновления и исправления от сообщества пользователей;
  • VContainer: это легковесный и высокопроизводительный DI-контейнер, вдохновленный Zenject. Он быстрее Zenject благодаря использованию IL2CPP-friendly кодогенерации. Имеет более «чистый» API и встроенную поддержку async/await (асинхронности и различных методов, связанных с ней, – прим. ред.).

Итак, Zenject является традиционным, популярным способом решения проблемы на Unity, однако он уже не поддерживается. К тому же, VContainer быстрее Zenject.


Инструменты повышения эффективности разработки на Unity: чит панели и консоли

 

При тестировании и разработке продукта очень важно иметь возможность быстрого доступа к логам и данным проекта. В том числе даже в такой ситуации, когда вы тестируете игру с какого-либо мобильного устройства.

Кроме того, для облегчения процесса тестирования крайне полезно иметь так называемую чит-панель, позволяющая по заранее сгенерированным командам управлять параметрами игры в реальном времени, без необходимости вручную проходить уровни или пытаться воссоздать какие-то определенные сценарии. 

  • SRDebugger: инструмент, сочетающий в себе и внутриигровую консоль, и чит-панель с кастомными кнопками. Самое главное, весь этот функционал доступен на любом «девайсе», включая мобильные устройства. Имеется встроенный профайлер (средство визуализации «узких мест» в коде, забирающих ресурсы, - прим. ред.) и баг репортер;
  • Quantum Console: похожий по функционалу инструмент, но с большим упором именно на текстовую консоль, что более предпочтительно для крупных проектов. Позволяет выполнять команды, просматривать логи и быстро изменять параметры игры во время работы;
  • In-game Debug Console: бесплатная альтернатива вышеуказанным плагинам, но из функционала здесь только внутриигровая консоль.

SRDebugger не зря упомянут в первую очередь. К его преимуществам перед другими можно отнести наличие встроенного профайлера и баг-репортера.

Другие варианты могут похвастаться бесплатной версией. Возможность тестировать игру прямо из самой игры и с любого устройства способна здорово ускорить разработку и облегчить жизнь разработчикам!


Инструменты повышения эффективности разработки на Unity: редактирование без рекомпиляции

Традиционная компиляция написанного кода занимает существенную часть времени разработчика. Он может «собираться» продолжительное время, не давая – если не используются специальные инструменты – делать ничего другого. При этом работа специалиста оказывается парализованной на некоторое время.

На Unity есть решения, позволяющие вносить изменения в код без необходимости повторной компиляции проекта. Эти решения позволяют делать это прямо в рантайме, то есть когда активирован Play Mode. Игорь порекомендовал для решения проблемы следующие плагины:

  • Hot Reload: наиболее популярный плагин, позволяющий избежать «пересборки» кода. Благодаря компиляции только измененных частей, разработчики могут быстро тестировать и отлаживать код, что существенно повышает продуктивность. Однако стоит помнить про технические ограничения, обусловленные самой природой процесса компиляции «на лету». Плагин не поддерживает: добавление новых публичных полей и методов, generic типы, а также сложные вложенные структуры.
  • Fast Script Reload: бесплатный аналог с похожим функционалам. Здесь вы также можете вносить изменения в C#‑код без остановки Play Mode. Однако функционал и дополнительные возможности чуть менее продвинутые, нежели у Hot Reload.

Hot Reload обладает максимумом функций для оптимизации работы над игрой с точки зрения рекомпиляций, однако другие плагины, Fast Script Reload, в частности, могут похвастатья отдельными, более удобными функциями.


Инструменты повышения эффективности разработки на Unity: твины и системы анимаций

Анимация является неотъемлемой частью любой игры. В Unity есть встроенные инструменты, позволяющие создавать и переключать анимации любой сложности. Для некоторых, слишком простых сценариев, как, например, «шейк» сферы по нажатию, создавать отдельный аниматор с «машиной состояний» (контейнер, который хранит в себе состояние какого-либо объекта в игре в текущий момент времени, - прим. ред.) и переключением между «стейтами» (состояниями, - прим. ред.) может оказаться чрезмерным.

То же самое относится и к случаям, когда нам нужно анимировать объекты процедурно, из кода. Встроенная в Unity система анимаций тут не подходит. Инструменты для решения этой проблемы: 

  • DoTween: мощная и крайне популярная библиотека для создания tween-анимаций в Unity. Благодаря интуитивному и лаконичному API вы можете создавать простые анимации из кода, объединять их в секвенции, зацикливать, добавлять кастомные колбеки (например, по завершению) и многое другое. Также DoTween хорошо оптимизирован и показывает высокую производительность даже при большом количестве одновременно анимированных объектов. Существует как бесплатная версия, так и Pro. Последняя отличается расширенным функционалом и возможностью создавать «твины» в редакторе Unity;
  • Animancer: другой популярный плагин, нацеленный на использование встроенной системы Animation, но в обход машины состояний Animator Controller. Он упрощает работу с анимациями, снимая потребность в сложных анимационных «деревьях», и дает разработчикам гибкий API для воспроизведения, плавных переходов и смешивания анимаций. Animancer особенно полезен в проектах с динамическими анимациями, где важно быстро менять состояния «на лету», без предварительной настройки контроллера.

Итого: DoTween отличается расширенным функционалом и возможностью создавать «твины» в редакторе Unity. Animancer особенно полезен в проектах с динамическими анимациями, где важно быстро менять состояния «на лету», без предварительной настройки контроллера.


Инструменты повышения эффективности разработки на Unity. Достойны упоминания!

В арсенале Unity-разработчиков есть множество инструментов для решения конкретных специфических задач, возникающих при работе над играми.

  • UniRx: это библиотека реактивного программирования для Unity, позволяющая легко управлять потоками событий и асинхронными операциями, делая код более декларативным и удобочитаемым;
  • UniTask: это легковесная альтернатива стандартным C#-таскам, оптимизированная для Unity, которая снижает накладные расходы на аллокации и повышает производительность асинхронного кода;
  • Final IK: комплексное решение для реализации инверсной кинематики, которое помогает создавать реалистичные движения персонажей и улучшать взаимодействие с окружением;
  • Easy Save 3: Универсальное решение для сохранения и загрузки данных игры, позволяющее без усилий сохранять прогресс, настройки и другие важные данные;
  • Behavior Designer: визуальное решение для создания деревьев поведения (behavior trees), упрощающее проектирование сложных сценариев ботов.

Больше популярных инструментов разработки на Unity можно найти на официальной площадке Unity, где они размещены.


Инструменты повышения эффективности разработки на Unity: вместо заключения

В регулярном отчете экспертов платформы за 2021 говорится, что количество игр, созданных на движке Unity Engine, увеличилось в этом году на 93% по сравнению с 2020 годом. Количество новых разработчиков на платформе Unity за этот период увеличилось на 31%.

Доля Unity в общем количестве выпускаемых игр традиционно велика, особенно в сегменте продукции под смартфоны. Столь бурное развитие обещает новые возможности, механики и альтернативы, и новые ниши.

 

05.04.2022

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru